IOS / xcode:将核心数据从app委托移动到模型类

时间:2015-02-04 03:11:30

标签: ios xcode core-data nsmanagedobjectcontext

IOS newb在核心数据方面苦苦挣扎。 Xcode示例项目将核心数据放入app delegate中。然后在app delegate.m文件中,在application didFinishLaunchingWithOptions:方法中,它包含对核心数据文件的调用:controller.managedObjectContext = self.managedObjectContext;,它会激活主控制器中的managedobjectcontext。

然而,我已经读过,app委托文件并不是你应该放置核心数据的地方,而是你应该把它放在模型文件中并将其称为单例。

我的问题是如果你将它从app委托文件移到没有application didFinishLaunchingWithOptions:方法的文件中,你如何确保托管对象上下文在你需要的地方可用,即在其他视图控制器中?换句话说,如果所有核心数据都在模型文件中,那么从控制器文件调用它的正确语法是什么,或者使其可用于模型文件中的控制器文件。

这个问题让我疯狂了两个星期所以非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

请参阅此示例:http://www.objc.io/issue-10/networked-core-data-application.html

github上有源代码的链接,它显示了将coreData代码从AppDelegate移动到单独的模型类PersistentStack的一种方法。在该示例中,AppDelegate仍然通过PersistentStack实例间接维护对托管对象上下文的引用。

根据模块化的需要,还有许多其他方法可以将coredata代码分离到单独的类中。