Potrzebuję przejść wszystkie pary klucz/wartość ze słownika i zrobić coś z oboma polami. Zastanawiam się, co jest bardziej skuteczne, tradycyjne podejście "foreach key" lub podejście bloków za pomocą enumerateKeysAndObjectsUsingBlock :.Przechodzenie kluczy/wartości NSDictionary, jest enumerateKeysAndObjectsUsingBlock bardziej wydajne niż zapętlanie kluczy i wywoływanie objectForkey :?
Tu masz przykład:
tradycyjne podejście (przed blokami) Podejście
for (NSString* key in [self.dictionary allKeys]) {
[self processKey:key value: [self.dictionary objectForKey:value ]];
}
bloków.
[self.dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
[self processKey:key value:obj];
}];
Mam przeczucie, że przejeżdżające par klucz/wartość przy użyciu bloku jest szybsze, ale nie jestem pewien, bo nie wiem, jak słowniki i konkretny sposób realizowany jest blok.
Jakieś myśli?
Z góry dziękuję!
Masz na myśli objectForKey: key zamiast objectForKey: value? – ohthepain