gpt4 book ai didi

iphone - 为什么我的 UISearchController 很慢?

转载 作者:行者123 更新时间:2023-11-29 13:47:49 25 4
gpt4 key购买 nike

我有一个 UISearchResultsController,它正在过滤我的 NSFetchedResultsController 并将过滤后的数据放入一个数组中。目前,我使用 NSPredicate 获取搜索栏内容并应用过滤器。这是我的谓词:

[filteredArray removeAllObjets];
for(Account *account in unfilteredResults){
NSPredicate *predicate;

if(controller.searchBar.selectedScopeButtonIndex == 0){

predicate = [NSPredicate predicateWithFormat:@"accountFirstName BEGINSWITH[cd] %@", searchString];
}else if(controller.searchBar.selectedScopeButtonIndex == 1){

predicate = [NSPredicate predicateWithFormat:@"accountLastName BEGINSWITH[cd] %@", searchString];
}else if(controller.searchBar.selectedScopeButtonIndex == 2){

predicate = [NSPredicate predicateWithFormat:@"group.groupName CONTAINS[cd] %@", searchString];
}

if([predicate evaluateWithObject:account]){
[self.filteredArray addObject:account];
}
}

我正在尝试根据名字、姓氏或群组名称过滤帐户。我知道这些操作很慢,但如何才能使它们更快?

编辑:

我只是注意到我在每次迭代时都重新创建谓词,但我仍然认为应该有更好的方法。我确实在 Apple 视频中看到了一些关于进行二进制比较的内容,但我不知道如何将搜索字符串转换为二进制字符串,更不知道如何获得“下一个最大”值。

如何用更高效的语句替换 BEGINSWITH 语句?

最佳答案

我假设您的数据对象是 CoreData 对象,如果是这样,您是否将要搜索的属性标记为索引?

关于iphone - 为什么我的 UISearchController 很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com