使用NSPredicate方法predicateWithFormat搜索数组

Evi*_*ent 2 objective-c nsarray nspredicate ios

目前尝试设置搜索将搜索一个看起来像这样的Array(bakeryProductArray)

"Tea Loaf",Tiramusu,"Treacle Loaf",Trifle,"Triple Chocolate Brownie",松露,"各种海绵","Viennese Whirls","Wedding Cakes"

用户输入UISearchbar的内容.我不清楚如何在CFString中表示数组中的每个项目.

我目前的代码是.

-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope
{

    searchSearch = [NSPredicate predicateWithFormat:@"self CONTAINS[cd]",searchText];
    //@"%K CONTAINS[cd] %@"
    searchResults = [bakeryProductArray filteredArrayUsingPredicate:searchSearch];

    NSLog(@"Filtered Food Product Count --> %d",[searchResults count]);
}
Run Code Online (Sandbox Code Playgroud)

如果需要,可以回答任何问题并提供更多代码.

Mar*_*n R 6

这是你在找什么?

NSArray *bakeryProductArray = @[@"Tea Loaf", @"Tiramusu", @"Treacle Loaf", @"Trifle"];
NSString *searchText = @"tr";

NSPredicate *searchSearch = [NSPredicate predicateWithFormat:@"self CONTAINS[cd] %@", searchText];
NSArray *searchResults = [bakeryProductArray filteredArrayUsingPredicate:searchSearch];

NSLog(@"%@", searchResults);
// "Treacle Loaf",
// Trifle
Run Code Online (Sandbox Code Playgroud)

这将查找包含给定搜索字符串的所有字符串(不区分大小写).或者,您可以根据需要使用"="或"BEGINSWITH".(有关谓词编程指南中谓词的更多信息.)