Мне нужно пройти через все пары ключ / значение в словаре и сделать что-то с обоими полями. Мне интересно, что является более эффективным, традиционный подход «ключ foreach» или подход блоков с использованием enumerateKeysAndObjectsUsingBlock:.
Вот вам пример:
Традиционный подход (до блоков)
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];
}];
У меня такое чувство, что обход пар ключ / значение с использованием блока происходит быстрее, но я не уверен, поскольку не знаю, как реализованы словари и метод конкретного блока.
Есть мысли?
Заранее спасибо!