제 애플리케이션에는 약 20.000 개의 대형 테이블이 있습니다. 나는 그것을 tableview에 표시하고있다. 그러나 동적 검색을 수행하는 동안 검색 막대가 너무 느립니다. 나는 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에 대한 Thk, 어디에서이 코드를 푸시합니까? "for"주기에? –
루프 대신. 이것은 루프를 대체합니다. – ssteinberg
알았어. 근데 내가 책을 관리해? @ "book.name에 % @"가 포함되어 있습니다. 맞습니까? –