在 UIViewController 之间传递 NSFetchedResultsController
Passing NSFetchedResultsController between UIViewControllers
我有 3 个不同的视图控制器,它们呈现相同的数据。基本上都是一个接一个呈现。他们呈现的是使用 NSFetchedResultsController
.
获取的相同实体
我现在正在考虑,因为它们是相同的 NSFetchedResultsControllers
,我是否应该只优化并创建一个在控制器之间传递的东西?这有什么缺点吗,或者更好的做法是什么?
另外,仅传递数据集是不够的,因为我希望控制器对数据库的更改做出反应。
should I just optimize things and create one, that I pass between controllers?
是的,尽量减少对每个 VC 的初始化执行类似 fetchRequest
的开销是一个很好的做法。
比在 VC 之间传递 NSFetchedResultsControllers
对象更好的替代方法是 -
将所有 FetchedResultsControllers
初始化和委托函数实现完全抽象为助手 class 命名为:
@interface CoreDataHelper: NSObject < NSFetchedResultsControllerDelegate >
你需要 re-wiring 的 delegate
听众 & 选择适当的时间 allocating
& 如果需要(不是必需的) deallocating
CoreDataHelper
实例
单例 CoreDataHelper
足以处理所有核心数据交互。
将 Model
交互与 View
组件隔离并独立于这些组件可以创建 loosely-coupled 模块,使它们可重用且简洁。
我有 3 个不同的视图控制器,它们呈现相同的数据。基本上都是一个接一个呈现。他们呈现的是使用 NSFetchedResultsController
.
我现在正在考虑,因为它们是相同的 NSFetchedResultsControllers
,我是否应该只优化并创建一个在控制器之间传递的东西?这有什么缺点吗,或者更好的做法是什么?
另外,仅传递数据集是不够的,因为我希望控制器对数据库的更改做出反应。
should I just optimize things and create one, that I pass between controllers?
是的,尽量减少对每个 VC 的初始化执行类似 fetchRequest
的开销是一个很好的做法。
比在 VC 之间传递 NSFetchedResultsControllers
对象更好的替代方法是 -
将所有
FetchedResultsControllers
初始化和委托函数实现完全抽象为助手 class 命名为:
@interface CoreDataHelper: NSObject < NSFetchedResultsControllerDelegate >
你需要 re-wiring 的
delegate
听众 & 选择适当的时间allocating
& 如果需要(不是必需的)deallocating
CoreDataHelper
实例单例
CoreDataHelper
足以处理所有核心数据交互。
将 Model
交互与 View
组件隔离并独立于这些组件可以创建 loosely-coupled 模块,使它们可重用且简洁。