2
我想学习如何使用谓词,因此我试图取代filteredArrayUsingPredicate以下工作代码...帮助创建使用谓词filteredArrayUsingPredicate
[filteredLocations removeAllObjects];
for (NSString *location in locations) {
NSRange range = [location rangeOfString:query options:NSCaseInsensitiveSearch];
if (range.length > 0) {
[filteredLocations addObject:location];
}
}
相反,我想....
[filteredLocations removeAllObjects];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", searchText];
[filteredLocations addObjectsFromArray: [locations filteredArrayUsingPredicate:predicate]];
我没有得到与谓词相同的结果,因为我用循环rangeOfString。以字符串的范围为例,searchText返回一个8项数组,而具有相同的值的数组只返回2个谓词。另一个例子,hono会在locations数组中找到檀香山,而使用谓词找不到任何东西。
据我所知,SELF代表被评估的对象对象,即。 locations数组,所以我认为这是正确的语法。
任何帮助,将不胜感激
谢谢,约翰
感谢该诀窍! – user278859 2010-06-13 05:43:37