UISearchController与UITableView由Core Data iOS 8支持

时间:2015-07-23 17:44:10

标签: uitableview core-data ios8 uisearchcontroller

尽管UISearchControllers上似乎有大量信息,但我发现的许多方法都已在iOS 8中弃用。我发现的大多数教程都使用了UISearchDisplayController,这是不推荐使用的,甚至UISearchController上的文档也使用了方便的方法。也被弃用了。我正在寻找知道如何成功搜索UITableView中的项目的人,该项目由iOS 8中的核心数据支持。

目前我有一个表视图,可以获取并显示从地图视图中保存的兴趣点。非常标准的样板文件 - 只是持久化和获取实体。最具挑战性的部分是将最近替换UISearchDisplayController的UISearchController添加到由核心数据支持的表视图中(tableview显示持久存储到数据存储的任何兴趣点实体)。使用核心数据而不是标准数组是复杂性开始的地方,并且没有足够的文档使用这种特定的方法。对任何和所有建议开放。

为了解决这个问题,让我们考虑一下我将核心数据中提取的项目存储在一个可变数组中。我们如何使用它来过滤我们的表格视图?

self.searchResults = [NSMutableArray arrayWithCapacity:[[self.fetchController fetchedObjects] count]];

1 个答案:

答案 0 :(得分:3)

您应该使用NSFetchedResultsController在表格视图中显示Core Data支持的数据。请先阅读。通过Xcode模板提供Boilerplate。

对于搜索,您可以例如只是使获取的结果控制器无效并让它懒洋洋地重新创建它。创建它时,为搜索项添加谓词。

UISearchController只会帮助您跟踪常见的搜索事件,即搜索文本更改,范围更改,取消等。