我有3个不同的视图控制器,它们呈现相同的数据。基本上他们是一个接一个地呈现。它们呈现的是使用NSFetchedResultsController
获取的相同实体。
我现在正在思考,因为它们是相同的NSFetchedResultsControllers
,我应该优化事物并创建一个,我在控制器之间传递?这有什么缺点,或者这个好习惯会更好吗?
同样只是传递数据集是不够的,因为我希望控制器对数据库的更改作出反应。
答案 0 :(得分:1)
我应该只是优化并创建一个,我在控制器之间传递?
是的,最小化在每个VC的init上执行类似fetchRequest
的开销是一个很好的做法
更好的替代方案而不是在VC之间传递NSFetchedResultsControllers
对象将是 -
完全抽象出所有FetchedResultsControllers
初始化&将函数实现委托给一个名为helte的类,如:
@interface CoreDataHelper: NSObject < NSFetchedResultsControllerDelegate >
您需要重新布线delegate
听众和&amp;为allocating
&amp;选择合适的时间如果deallocating
实例
CoreDataHelper
单身CoreDataHelper
将为您提供足够的服务以处理所有核心数据互动。
隔离Model
互动&amp;独立于View
组件,可以创建松散耦合的模块,使它们可重复使用。简洁。