使用 Swift 3 实现缩短(多次处理单个数据)和过滤核心数据的最佳方法是什么?
What is the best way to implement shorting(Multiple time on single data) and filter with core data with Swift 3?
[核心数据提供了NSFetchResultController来辅助UITableView。我想用持续时间、出发、到达、价格和停靠点数按升序和降序对数据进行排序。
我通过提供排序描述符来获取请求来对数据进行排序。
我只想知道为每次排序创建 FetchResultController 是最好的方法吗?
是的,您应该在每次需要排序时创建一个新的 fetchedResultsController。 fetchedResultsController 跟踪更新、删除、插入和移动,因此如果您的数据在您获取后发生更改,fetchedResultsController 将告诉您如何更新您的视图。如果您只是进行一次获取然后对结果进行求值,则数据可能会过时。更糟糕的是,如果您在某个对象被删除后访问它,您的应用程序将会崩溃。 fetchedResultsController 可以保护您免受这些问题的困扰。
即使是大型数据集,每次用户希望排序时创建新的 fetchedResultsController 也没有任何问题。如果你发现你有性能问题,那么你应该处理它而不是预先优化。
[核心数据提供了NSFetchResultController来辅助UITableView。我想用持续时间、出发、到达、价格和停靠点数按升序和降序对数据进行排序。 我通过提供排序描述符来获取请求来对数据进行排序。
我只想知道为每次排序创建 FetchResultController 是最好的方法吗?
是的,您应该在每次需要排序时创建一个新的 fetchedResultsController。 fetchedResultsController 跟踪更新、删除、插入和移动,因此如果您的数据在您获取后发生更改,fetchedResultsController 将告诉您如何更新您的视图。如果您只是进行一次获取然后对结果进行求值,则数据可能会过时。更糟糕的是,如果您在某个对象被删除后访问它,您的应用程序将会崩溃。 fetchedResultsController 可以保护您免受这些问题的困扰。
即使是大型数据集,每次用户希望排序时创建新的 fetchedResultsController 也没有任何问题。如果你发现你有性能问题,那么你应该处理它而不是预先优化。