Существует ли способ выполнить итерации по словарю?

Если Вы будете использовать LOC в качестве меры производительности, то Вы внезапно найдете, что Ваши программисты, пишущие намного больше verbosely, "играют система". Это - глупая мера, и только глупые люди используют его для чего-то большего чем престижа.

195
задан Alex Cio 11 June 2015 в 02:44
поделиться

1 ответ

Да, NSDictionary поддерживает быстрое перечисление. С Objective-C 2.0 вы можете сделать это:

// To print out all key-value pairs in the NSDictionary myDict
for(id key in myDict)
    NSLog(@"key=%@ value=%@", key, [myDict objectForKey:key]);

Альтернативный метод (который вы должны использовать, если вы ориентируетесь на Mac OS X до 10.5, но вы все равно можете использовать на 10.5 и iPhone) - использовать NSEnumerator : ​​

NSEnumerator *enumerator = [myDict keyEnumerator];
id key;
// extra parens to suppress warning about using = instead of ==
while((key = [enumerator nextObject]))
    NSLog(@"key=%@ value=%@", key, [myDict objectForKey:key]);
313
ответ дан 23 November 2019 в 05:21
поделиться