Поиск NSArray из NSDictionaries - PullRequest
       14

Поиск NSArray из NSDictionaries

7 голосов
/ 01 декабря 2011

У меня есть массив со словарями, и мне нужно выполнить поиск по массиву

и изменить определенный словарь в массиве, найденный по имени объекта внутри словаря.

Итак, создайтеизменяемый массив, словарь и добавление множества словарей в массив

       ...{ self.bloquesArray = [[[NSMutableArray alloc] init]autorelease];  
    [self createBloqueDicto];
    [self.unBloqueDicto setObject:@"easySprite" forKey:@"Name"];
    [self.unBloqueDicto setObject:@"290" forKey:@"X"];
    [self.unBloqueDicto setObject:@"300" forKey:@"Y"];

    [self.bloquesArray addObject:self.unBloqueDicto];

}

- (void)createBloqueDicto {
self.unBloqueDicto = [[[NSMutableDictionary alloc] init] autorelease];
}

, поэтому теперь мне нужно изменить значение ключа X и Y в словаре с помощью ключа

: Name = easySpriteпоэтому нужно найти этот конкретный словарь [другие словари имеют разные значения для имени]

как я могу это сделать, пожалуйста?

спасибо!

1 Ответ

18 голосов
/ 01 декабря 2011

Для получения соответствующих словарей выполните следующие действия:

NSPredicate *p = [NSPredicate predicateWithFormat:@"Name = %@", @"easySprite"];
NSArray *matchedDicts = [bloquesArray filteredArrayUsingPredicate:p];

Теперь matchedDicts содержит словари со значением @ "easySprite" для ключа @ "Имя" .Сделайте остальное (изменив X и Y) оттуда.

...