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