2

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

4

2 回答 2

7

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

这种设计更加灵活,并允许更多地重用您的代码。将所有内容链接到 AppDelegate 中的单个“硬编码”NSManagedObjectContext是脆弱的,并且会降低代码的灵活性。

我在Mac Developer Network上对此进行了深入讨论。(编辑:现在通过 Wayback Machine 的缓存丢失了链接)

于 2010-07-04T19:01:40.160 回答
0

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

于 2010-07-04T12:28:52.807 回答