2016-08-29 3 views
0

ПРИМЕЧАНИЕ: employeename является ключевым в массиве многозарядных ключевых пары значенийFix NSPredicate

NSPredicate найти результат все имени сотрудника, когда пользовательского типа символы мудрого поиск

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"employeename BEGINSWITH[cd] %@", searchtxtField.text]; 
NSArray *elementFound= [arr_employeeData filteredArrayUsingPredicate:predicate]; 
NSLog(@"arr_add_data=%@",arr_employeeData); 

(
     { 
     employeename = "Anoop"; 
     employeeMobile = 11111111; 
    }, 
{ 
     employeename = "Anoop singh"; 
     employeeMobile = 11111111; 
    }, 
    { 
     employeename = "Anoop kumar"; 
     employeeMobile = 1133111111; 
    }, 
{ 
     employeename = "Vijay kumar"; 
     employeeMobile = 22222; 
    }, 

) 

Если ваш тип А в поиске бар, он должен будет получить все результаты. Имя сотрудника начинается с A и т. д.

+0

Я только предполагаю здесь, но ваша проблема в том, что 'Виджай kumar' появляется на выходе, а вы «В качестве условия поиска вы ввели« А »? – Petesh

+0

no Я получаю только одно средство, если я набираю полный аноним, тогда я получаю один результат, если я набираю anoop kumar complete, тогда я получаю результат, мне нужно, чтобы просто набрать a или anoop и т. Д. Я получаю все данные о имени сотрудника, которые содержат эти strings – iphonemaclover

+0

А, это было совершенно непонятно из вашего описания проблемы. – Petesh

ответ

2

Думаю, с вашим предикатом все хорошо. Но результат отфильтрованных пользователей будет в

NSArray * elementFound.

Просто распечатайте его и используйте его далее в своей программе. Поскольку этот метод возвращает фильтрованный массив по предикату, но не меняет исходный. Чтобы изменить оригинал,

NSMutableArray * mutab = [[NSMutableArray alloc] initWithArray:arr_employeeData]; 
    [mutab filterUsingPredicate:predicate]; 

И «mutab» массив, будет отфильтрованные результаты