У меня есть NSDictionary и я хочу перебирать объекты.Но в то же время мне нужно знать ключ словаря.
Я помню, что была особая, причудливая форма быстрого перечисления, но забыл точный синтаксис.
Кто-нибудь?
Я думаю, что вы хотите что-то вроде этого:
for (id key in dictionary) { NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]); }
Взято из здесь .
Это также хороший выбор, если вы любите блоки.
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { }]
for (id key in mydictionary) { id mything = [mydictionary objectForKey:key]; }
Насколько мне известно, в то время, когда вы задавали вопрос, был только один способ обхода ключей и значений одновременно: CFDictionaryApplyFunction.
CFDictionaryApplyFunction
Использование этой базовой функции включает в себя уродливый указатель на C-функцию для тела цикла и множество не менее уродливых, но все же бесплатных вызовов приведения.
@ zekel имеет современный способ перебора словаря. Проголосуй за него!
keyEnumerator возвращает объект, который позволяет перебирать все ключи в словаре. С здесь