मैं enumerateObjectsUsingBlock:
अपनी तेजी से गणना की जरूरत के लिए हाल ही में एक बहुत का उपयोग कर रहा हूँ, और मैं एक कठिन समय BOOL *stop
में गणना ब्लॉक के उपयोग को समझ रहा हूँ ।
NSArray
वर्ग संदर्भ राज्यों
stop
: एक बूलियन मान का संदर्भ। ब्लॉकYES
सरणी की आगे की प्रक्रिया को रोकने के लिए मान सेट कर सकता है ।stop
तर्क से बाहर ही तर्क है। आपको कभी भी इस बूलियन कोYES
ब्लॉक के भीतर सेट करना चाहिए ।
तो फिर निश्चित रूप से मैं गणना को रोकने के लिए अपने ब्लॉक में निम्नलिखित जोड़ सकता हूं:
if (idx == [myArray indexOfObject:[myArray lastObject]]) {
*stop = YES;
}
जो मैं बताने में सक्षम हूं, उससे स्पष्ट रूप *stop
से YES
कोई नकारात्मक प्रभाव नहीं पड़ता है। एन्यूमरेशन अपने आप को एरे के अंत में अपने आप बंद हो जाता है। तो क्या *stop
वास्तव में एक ब्लॉक में उपयोग करना आवश्यक है?
stop
झंडा सलाहकार है; गणना समवर्ती मामले में पुनरावृत्तियों की कुछ अपरिभाषित संख्या के लिए जारी रह सकती है, उदाहरण के लिए। यानी आप__block
एन्यूमरेशन के माध्यम से प्रत्येक पास पर बिना शर्त के एक चर सेट नहीं कर सकते हैं और यह उम्मीद करते हैं कि यहstop
जल्दी समाप्त होने पर "अंतिम" मान होगा । आपको सेटिंग के साथ हमेशा "नहीं, इस ऑब्जेक्ट का उपयोग करें" करना चाहिएstop = YES;
।