在我的应用程序中,我有一个包含大约 20.000 个项目的大表。我在tableview上显示它。但是在进行动态搜索时搜索栏太慢了。我读过 NSPredicate 方法的性能比 NSRange 高。我不知道如何应用这种方法。
我的代码是:
- (void)filterContentForSearchText:(NSString*)searchText
{
[self.filteredListContent removeAllObjects];
for (Book *book in listContent)
{
NSRange range = [book.name rangeOfString:searchText options:NSCaseInsensitiveSearch];
// is very very slow
if (range.location != NSNotFound)
{
[self.filteredListContent addObject:book];
}
}
}
我必须在哪里插入 NSPredicate 到我们的“for”中?