2016-03-07 6 views
-4

У меня есть набор словарей с ключами «имя», «образ», «электронная почта» и «телефон» в качестве ключей. Я хочу отфильтровать словари, содержащие электронную почту и телефоны, отдельно, используя nspredicate, передавая ключ словаря в качестве строки поиска. Как я могу это достичь.Как фильтровать массив словарей с помощью nspredicate

+1

это требования .. где ваша попытка ??? –

+0

Ваш вопрос непонятен, вы хотите предикат нескольких ключей или одного ключа –

+0

Вот как я это делаю, – Naveen

ответ

1

Используйте NSPredicate класса для фильтрации массива словаря указанного ключа,

Для фильтра по электронной почте:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"email contains[c] %@",strSearchString]; 

filteredArray = [[NSMutableArray alloc] initWithArray: [[arrayData filteredArrayUsingPredicate:predicate] copy]]; 

Для фильтра по телефону:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"phone contains[c] %@",strSearchString]; 

filteredArray = [[NSMutableArray alloc] initWithArray: [[arrayData filteredArrayUsingPredicate:predicate] copy]]; 
+0

Почему [c] после «содержит»? –

+2

для нечувствительности к корпусу – techloverr

+0

, и если вы не хотите, чтобы он был чувствительным, просто не добавляйте [c] вправо? по определению это не чувствительный к регистру? –

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