在UIViewControllers之间传递NSFetchedResultsController

时间:2017-02-20 20:12:23

标签: ios nsfetchedresultscontroller

我有3个不同的视图控制器,它们呈现相同的数据。基本上他们是一个接一个地呈现。它们呈现的是使用NSFetchedResultsController获取的相同实体。

我现在正在思考,因为它们是相同的NSFetchedResultsControllers,我应该优化事物并创建一个,我在控制器之间传递?这有什么缺点,或者这个好习惯会更好吗?

同样只是传递数据集是不够的,因为我希望控制器对数据库的更改作出反应。

1 个答案:

答案 0 :(得分:1)

  

我应该只是优化并创建一个,我在控制器之间传递?

是的,最小化在每个VC的init上执行类似fetchRequest的开销是一个很好的做法 更好的替代方案而不是在VC之间传递NSFetchedResultsControllers对象将是 -

  • 完全抽象出所有FetchedResultsControllers初始化&amp;将函数实现委托给一个名为helte的类,如: @interface CoreDataHelper: NSObject < NSFetchedResultsControllerDelegate >

  • 您需要重新布线delegate听众和&amp;为allocating&amp;选择合适的时间如果deallocating实例

  • 需要(不是必需的)CoreDataHelper
  • 单身CoreDataHelper将为您提供足够的服务以处理所有核心数据互动。

隔离Model互动&amp;独立于View组件,可以创建松散耦合的模块,使它们可重复使用。简洁。