2013-07-30 2 views
1

Пусть у меня есть NSMutableArray из NSDictionary так (каждая строка представляет собой словарь):Ассоциативный быстро находка NSDictionary как элементы NSArray

 key count type 
0 1 1  Apple 
1 1 2  Banana 
2 2 1  Pear 
3 3 4  Ananas 

Предположим, что я хотел бы найти все фрукты для ключа 1. простой и грубый путь перечисляет NSMutableArray и находит только те NSDictionary, которые имеют ключ = 1. Существует лучший или более умный способ? (Данные взяты из SQL-запроса).

+0

я ставлю только одно значение вам просто нужно положить все, что вы хотели значения здесь .. – Jitendra

+0

используя 'key' в качестве имени ключа словаря __might__ вызывают проблемы. – Abizern

ответ

3

Вы можете попробовать использовать метод filteredArrayUsingPredicate: из NSArray:

// Supposing originalArray is an NSArray holding the NSDictionaries that represent the fruits 
NSArray *filteredArray = [originalArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"key == %@", @1]]; 

filteredArray теперь будет держать все словари с 1 как ключ.

+0

Работает ли он также в iOS? – giuseppe

+0

Он должен работать как на OS X, так и на iOS – s1m0n

+0

Спасибо. Я даже знал о возможности фильтрации NSArray. – giuseppe

0
NSArray *data = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"1" forKey:@"YourKey"]]; 
    NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(YourKey == %@)", @"1"]]; 

    NSLog(@"%@",filtered); 

Попробуйте это один может быть полезной для вас ..

Смежные вопросы