2013-12-19 5 views
0

Может кто-нибудь помочь мне в этомПоиск От Plist

Я нагруженной plist при запуске приложения мое приложение и у меня есть вход поиска. Когда я ввожу текст для ввода Я хочу, чтобы найти plist

self.plistFile = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"xutbe"] ofType:@"plist"]; 
self.allData = [NSArray arrayWithContentsOfFile:self.plistFile]; 

я судимый как это, но не работаю

NSString *INPUT = @"s"; 
self.plistFile = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"filename"] ofType:@"plist"]; 
self.allData = [NSArray arrayWithContentsOfFile:self.plistFile]; 

NSArray *searchRes = [self.allData filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self == %@", INPUT]]; 
NSLog(@"%@", searchRes); 

А также попытался это и не работает

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"xutbe" ofType:@"plist"]; NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:plistPath]; NSDictionary* vcDict = [dict valueForKey:@"sd"]; NSLog(@"%@", vcDict); 
+0

Вероятно, вы должны быть более конкретным о содержании плиты. Это массив строк? или массив словарей? – FelixLam

ответ

3

Если вы хотите для поиска объекта из NSArray использовать NSPredicate

NSArray *searchRes = [self.allData filteredArrayUsingPredicate:[NSPredicate 
    predicateWithFormat:@"self == %@", INPUT]]; 
+1

'CONTAINS' или' BEGINSWITH' могут быть лучшими ключевыми словами, чем '==' – FelixLam

+0

Это приведет к достойным результатам, если массив содержит строки – FelixLam

+0

@FelixLam да. Ты прав. Спасибо за информацию – manujmv

2

Вы должны попробовать следующее для поиска строки ввода в начале строки:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"self BEGINSWITH %@", INPUT]; 
NSArray *searchRes = [self.allData filteredArrayUsingPredicate:pred]; 

или для поиска строки в любом месте:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"self CONTAINS %@", INPUT]; 
NSArray *searchRes = [self.allData filteredArrayUsingPredicate:pred]; 

Вы могли бы хотеть иметь Взгляните на документацию: https://developer.apple.com/library/mac/documentation/cocoa/conceptual/predicates/Articles/pUsing.html

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