ios - 使用 Swift 3 实现缩短(单个数据多次)和过滤核心数据的最佳方法是什么?

标签 ios swift core-data nsfetchedresultscontroller nsfetchrequest

[核心数据提供了NSFetchResultController来帮助UITableView。我想用持续时间、出发、到达、价格和停靠点数按升序和降序对数据进行排序。 我通过提供排序描述符来获取请求来对数据进行排序。

我只想知道为每次排序创建 FetchResultController 是最好的方法吗?

enter image description here

最佳答案

是的,您应该在每次需要排序时创建一个新的 fetchedResultsController。 fetchedResultsController 跟踪更新、删除、插入和移动,因此如果您的数据在您获取后发生更改,fetchedResultsController 将告诉您如何更新您的 View 。如果您只是进行一次获取然后对结果进行求值,则数据可能会过时。更糟糕的是,如果您在某个对象被删除后访问它,您的应用程序将会崩溃。 fetchedResultsController 可以保护您免受这些问题的困扰。

即使是大型数据集,每次用户希望排序时创建新的 fetchedResultsController 也没有任何问题。如果你发现你有性能问题,那么你应该处理它而不是预先优化。

关于ios - 使用 Swift 3 实现缩短(单个数据多次)和过滤核心数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363571/

相关文章:

iphone - 在 tableviewcell 中设置文本标签的位置?

ios - ViewController 不符合 Swift 上的协议(protocol)

ios - 导航到 NSObject 类型类中的 View Controller

iphone - 与 UITableView 关联的 NSIndexPath

objective-c - 在 Core Data 管理类中处置 NSManagedObjectContexts

ios - UITableView 在每个部分返回相同的项目

ios - CAKeyframeAnimation - 沿路径移动并使用缓动

IOS - 限制用户最多选择 8 个图像并使用 For 循环将多个图像上传到 Firebase

ios - 本地图移动时执行操作

xml - 应采取哪些步骤将我的 XML 转换为 Core Data 对象?