2012-05-21 13 views
8

एक सरणी का तेजी से गणना सूचकांक क्रम में हमेशा जायेगी?एनएसएआरएआरई और तेज गणना, हमेशा इंडेक्स ऑर्डर में जाती है?

for (NSDictionary *zone in myArray) 
{ 
    //do code 
} 

जो हमेशा सूचकांक स्थान 0, 1, 2, ..., n से गणना करेगा?

मैं लूप के लिए मानक पर तेज़ गणना पसंद करता हूं क्योंकि यह कोड को पढ़ने में आसान बनाता है।

उत्तर

17

हाँ, यह होगा:

संग्रह या प्रगणक के लिए के रूप में एक NSArray एक अच्छी तरह से परिभाषित क्रम-ऐसे है या उस क्रम में गणना आय से प्राप्त एक एनएसईएन्यूमेरेटर उदाहरण, इसलिए केवल की गणना करने पर आपको गणना में उचित अनुक्रमणिका मिलती है यदि आपको इसकी आवश्यकता हो।

docs here

4

अनुक्रमित, उपयोग ब्लॉक के साथ एक सरणी के तेजी से गणना के लिए:

[myArray enumerateObjectsUsingBlock:^(NSObject *object, NSUInteger idx, BOOL *stop) { 
    ... 
    // idx is myArray's index 
}];  
+0

यह सवाल का जवाब नहीं है ... – Macmade

+2

तो melsam कहा, "हाँ, आदेश संरक्षित है, लेकिन अगर आप एक 'सूचकांक' चर चाहते हैं, यहाँ एक बेहतर समाधान है", तो यह होगा प्रश्न और स्पष्ट अनुवर्ती प्रश्न का उत्तर दें। – bbum

संबंधित मुद्दे