将managedObjectContext传递给视图/控制器层次结构

时间:2010-07-04 12:17:29

标签: iphone core-data software-design

在应用程序委托中创建的大多数情况下的托管对象上下文。 将它传递给视图/控制器层次结构的方法有哪些,因此树中的每个导航/选项卡控制器都可以访问它。每次从父母到孩子的传递都可能不是最好的,因为我每次都必须携带这些信息,有时不是所有的控制器都可能需要它。

2 个答案:

答案 0 :(得分:6)

推荐的设计是进行依赖注入。这意味着当您创建UIViewController时,您通过属性传递NSManagedObjectContext。如果UIViewController只需要一个或一组NSManagedObject个实例,那么您只需将其传递给via属性。

此设计更灵活,可以更好地重用代码。将所有内容链接到AppDelegate中的单个“硬编码”NSManagedObjectContext是脆弱的,并降低了代码的灵活性。

我在The Mac Developer Network上深入讨论了这个问题。

答案 1 :(得分:0)

您还可以在主Nib中创建主上下文对象。并将控制器与此对象链接。如果您只使用一个MOC,请创建singleton