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