मुझे एक शब्दकोश के सभी कुंजी/मूल्य जोड़े को पार करने और दोनों फ़ील्ड के साथ कुछ करने की आवश्यकता है। मैं सोच रहा हूं कि क्या अधिक कुशल है, परंपरागत 'foreach key' दृष्टिकोण या ब्लॉक का उपयोग करके enumerateKeysAndObjectsUsingBlock:।एनएस डिक्शनरी की कुंजी/मानों को ट्रैवर्स करना, enumerateKeysAndObjectsUsingBock लूपिंग कुंजियों और कॉलिंग ऑब्जेक्ट से अधिक कुशल है Forkey :?
पारंपरिक दृष्टिकोण (ब्लॉक से पहले)
for (NSString* key in [self.dictionary allKeys]) {
[self processKey:key value: [self.dictionary objectForKey:value ]];
}
ब्लाकों दृष्टिकोण:
यहाँ आप एक उदाहरण है।
[self.dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
[self processKey:key value:obj];
}];
मेरे पेट लग रहा है कि ब्लॉक का उपयोग कुंजी/मान जोड़े traversing तेजी से होता है है, लेकिन मुझे यकीन है कि जब से मैं नहीं जानता कि कैसे शब्दकोशों और विशेष रूप से ब्लॉक विधि कार्यान्वित किया जाता है नहीं कर रहा हूँ।
कोई विचार?
अग्रिम धन्यवाद!
क्या आपका मतलब ऑब्जेक्टफोरकी: ऑब्जेक्ट की बजाय कुंजीफोरकी: मान? – ohthepain