我在iOS應用程序的表視圖組件中添加了一個搜索欄,允許通過由詞典組成的NSArray進行搜索。但是,搜索欄並不是一直運行 - 如果數據完全匹配,但不是部分匹配,則會成功打印出結果。例如,如果輸入完整的短語,則會打印出「關閉燈光」,但如果僅輸入「轉動」,則不會打印。但是,在僅由字符串組成的調試數組中,搜索功能完全按照預期工作。iOS Cotains-based Predicate search only only when found match found found
我斷言代碼是在這裏:
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd] %@", searchText];
self.searchResults = [allSearchableItems filteredArrayUsingPredicate:resultPredicate];
}
實際工作的試塊是這樣寫的:
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd] %@", searchText];
NSArray *array = [NSArray arrayWithObjects:@"Miguel", @"Ben", @"Adam", @"Melissa", nil];
NSArray *moreStuff = [array filteredArrayUsingPredicate:resultPredicate];
NSLog(@"%@", moreStuff);
self.searchResults = [allSearchableItems filteredArrayUsingPredicate:resultPredicate];
}
在上面的代碼塊中,NSArray的「moreStuff」打印出來,正確更新,但是在第一個塊中,NSArray「searchResults」僅在輸入完全匹配時才返回結果。我在這裏完全損失,所以任何幫助/建議都將超級讚賞。
謝謝,這完全解決了我的問題! – KatelynLiz