Перечислите NSDictionary с ключами и объектами, стиль PHP - PullRequest
15 голосов
/ 23 сентября 2010

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

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

Ответы [ 3 ]

58 голосов
/ 23 сентября 2010

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

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

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

34 голосов
/ 23 сентября 2010
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
7 голосов
/ 19 января 2015

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

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