所以这就是我搜索的方式:
通过addObjectsFromArray:
将该数组添加到可变结果数组中:
- (void)filterContentForSearchText:(NSString*)searchText
scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
NSArray *results = [self.allItems filteredArrayUsingPredicate:resultPredicate];
NSMutableArray *myResults = [[NSMutableArray alloc] init];
[myResults addObjectsFromArray:results];
self.searchResults = myResults;
[myResults release];
NSLog(@"%@", self.searchResults);
}
我看到的问题是,每次执行搜索时都必须创建一个可变数组,这就是每次发生“keyup”时。我想知道这个方法是否有更好的方法。
提前致谢!
答案 0 :(得分:1)
步骤#4没有意义。直接分配过滤的数组但不通过myResults分配。在某些内部逻辑的情况下,您将需要一个过滤结果数组的副本,您仍然可以将其作为我的调用复制方法。