gpt4 book ai didi

ios - 使用 NSFetchedResultsController 执行搜索

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:17:58 27 4
gpt4 key购买 nike

我的表格 View 有一个搜索栏,但我没有使用 UISearchDisplayController 来显示结果,而是使用我的表格 View 。

我的代码似乎可以工作,但我想知道这样做是否可以接受。当用户开始输入时,我添加一个谓词来执行搜索,当用户删除搜索栏内的文本时,我将 NSFetchResultsController 清零以获取所有内容。

我是不是做错了什么,或者有更好的方法吗?

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if ([searchText length] == 0) {
_fetchedResultsController = nil;
}
else {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];
[[_fetchedResultsController fetchRequest] setPredicate:predicate];
}

NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}

[[self tableView] reloadData];
}

最佳答案

我做的唯一不同的事情是在您有很多记录的情况下对结果添加提取限制,但是是的,这种方法没有任何问题。

也许是这样

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];
[[_fetchedResultsController fetchRequest] setPredicate:predicate];
[[_fetchedResultsController fetchRequest] setFetchLimit:50];

关于ios - 使用 NSFetchedResultsController 执行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16617238/

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