我正在尝试在我的表视图上实现搜索。我从Core Data填充一个名为myArray
的NSMutableArray;然后我用myArray
然后,我有一个名为mySearchArray
的NSMutableArray。我用这个数组来显示搜索结果。这是我用于过滤的代码:
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
[self.mySearchArray removeAllObjects];
for (MyModel *product in myArray)
{
NSComparisonResult result = [product.productName compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
[self.mySearchArray addObject:product];
}
}
问题是搜索无法正常运行。当我搜索某些内容时,我会看到下面的图片。
我做错了什么?
编辑:
过滤正在运行。例如,如果我搜索字母“a”并且只有一个单元格名称具有“a”,则只显示一个单元格。问题是它没有显示带有“a”的单元格。它只显示顶部单元格。
答案 0 :(得分:1)
请参阅以下链接。它可能会帮助你。这是搜索栏的一个例子。
答案 1 :(得分:0)
我明白了。问题出在我的表视图实现的cellForRowAtIndexPath:
方法中。
我有这段代码:
if (self.tableView == self.searchDisplayController.searchResultsTableView)
当我用self.tableView
替换tableView
时,它运作得很好。
所以正确的代码是:
if (tableView == self.searchDisplayController.searchResultsTableView)