使用 NSPredicate 过滤数组
Posted
技术标签:
【中文标题】使用 NSPredicate 过滤数组【英文标题】:Using NSPredicate to filter Array 【发布时间】:2014-12-01 00:04:06 【问题描述】:我想要的是我的 swag、Apples、Oranges 数组,根据它包含的内容进行过滤,所以如果它包含一个字母或一串字母。到目前为止我有这个:
NSArray* test = @[@"swag", @"Apples", @"Oranges"];
//NSString *nameOnly = [[onlyApps lastPathComponent] stringByDeletingPathExtension]
NSString *searchinput = @"a";
NSPredicate * fltrSearch = [NSPredicate predicateWithFormat:@"%@ contains[cd] '%@'", test, searchinput];
NSArray * Search = [test filteredArrayUsingPredicate:fltrSearch];
NSLog(@"%@", fltrSearch);
NSLog(@"%@", Search);
【问题讨论】:
【参考方案1】:请参考以下修改后的代码:-
NSArray* test = @[@"swag", @"Apples", @"Oranges"];
NSString *searchinput = @"a";
NSPredicate * fltrSearch = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",searchinput];
NSArray * Search = [test filteredArrayUsingPredicate:fltrSearch];
NSLog(@"%@", Search);
您的 predicateWithFormat 行是错误的。所以只需替换以下行:-
NSPredicate * fltrSearch = [NSPredicate predicateWithFormat:@"%@ contains[cd] '%@'", test, searchinput];
修改后的行:-
NSPredicate * fltrSearch = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",searchinput];
输出:-
(
swag,
Apples,
Oranges
)
【讨论】:
好的,如果我想在下面这样做呢?以上是关于使用 NSPredicate 过滤数组的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSPredicate 过滤数组的 NSDictionary
使用 NSPredicate 过滤 NSDictionary 中的值并返回键数组