在我的应用程序中,我有一个大约20,000个项目的大表。我在桌面上显示它。但搜索栏在进行动态搜索时速度太慢。我已经读过,NSPredicate方法是高性能的,然后是NSRange。 我不知道如何应用这种方法。nspredicate的快速研究
我的代码是:
- (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,到我们离开 “为”?
对于aswer,我推这个代码?进入“换”周期? – 2012-04-18 10:52:35
而不是循环。这取代了循环。 – ssteinberg 2012-04-18 10:53:58
好的,但我管理对象书? @“book.name包含%@”,是吗? – 2012-04-18 10:56:41