Objective c 在iOS搜索中获得NSMutableArray结果的更好方法
下面是我如何进行搜索的:Objective c 在iOS搜索中获得NSMutableArray结果的更好方法,objective-c,ios,Objective C,Ios,下面是我如何进行搜索的: 我有一个数据数组和一个可变的搜索结果数组 我执行搜索 我使用带有FilterArraySingPredicate的谓词用搜索结果填充数组: 通过addObjectsFromArray:将该数组添加到可变结果数组中,如下所示: - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { NSPredic
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);
}
提前谢谢 第四步没有意义。直接分配筛选数组,但不通过myResults分配。在一些内部逻辑的情况下,您将需要一个过滤结果数组的副本,您仍然可以通过调用copy方法获得它 等等,什么?为什么要创建那个可变数组?为什么不只是self.searchResults=[self.allItems filtered…]?这就是我在教程中经常看到的。其实不知道为什么。他们有一个用于结果的可变数组,并添加到该数组中,而我不能将筛选…]与可变数组一起使用是的,只有在将来需要向该数组添加内容或修改该数组时才这样做。如果没有,就不要这样做。还有,是的,你可以打电话给。。。在可变数组上,因为可变数组继承自NSArray,因此NSMutableArray可以执行NSArray可以执行的所有操作。