Перечислить NSDictionary с ключами и объектами, PHP-стиль

Я знаю, что вы можете перечислить ключи или значения NSMutableDictionary с помощью NSEnumerator. Можно ли сделать оба вместе? Я ищу что-то похожее на перечисление PHP foreach, например:

foreach ($dictionary as $key => $value);

Ответы

Ответ 1

Возможно, посмотрите на метод NSDictionary:

enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))

Если вы не знакомы с блоками в C/ Objective-C, это хороший учебник: http://thirdcog.eu/pwcblocks/

Ответ 2

NSDictionary* d = [NSDictionary dictionaryWithObjectsAndKeys:@"obj1",@"key1",
                                                           @"obj2",@"key2",
                                                           @"obj3",@"key3",
                                                           @"obj4",@"key4",nil];

for (id key in [d allKeys]) {
    NSLog(@"%@ - %@",key,[d objectForKey:key]);
}

Выходы:

keytest[7880:a0f] key3 - obj3
keytest[7880:a0f] key1 - obj1
keytest[7880:a0f] key4 - obj4
keytest[7880:a0f] key2 - obj2

Ответ 3

Теперь намного проще:

for (NSString * key in dict)
{
    id/* or your type */ value = dict[key];
    ...
}