Swift 在AppDelegate中设置managedObjectContext
我正在尝试学习核心数据的基础知识,并启动了一个单视图应用程序,同时拥有一个基本的主细节应用程序模板,其中核心数据可供参考 我无法通过AppDelegate.swift在MasterViewController中设置managedObjectContext 到目前为止,我已经知道了,主细节模板使用了一个我没有使用的分割视图,那么我怎样才能只用一个视图应用程序来做类似的事情呢Swift 在AppDelegate中设置managedObjectContext,swift,core-data,Swift,Core Data,我正在尝试学习核心数据的基础知识,并启动了一个单视图应用程序,同时拥有一个基本的主细节应用程序模板,其中核心数据可供参考 我无法通过AppDelegate.swift在MasterViewController中设置managedObjectContext 到目前为止,我已经知道了,主细节模板使用了一个我没有使用的分割视图,那么我怎样才能只用一个视图应用程序来做类似的事情呢 func application(application: UIApplication, didFinishLaunchin
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// How to reference MasterViewController???
controller.managedObjectContext = self.managedObjectContext
return true
}
您可以使用以下代码行访问整个应用程序中的托管对象上下文
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
因此,您可以删除以下行
controller.managedObjectContext = self.managedObjectContext
我建议将
NSManagedObjectContext
传递给苹果文档中建议的相应视图控制器。
这包括以下步骤:
- 准备你的核心数据栈李>
- 保留对核心数据堆栈中准备的
的强引用李>NSManagedObjectContext
- 在(swift)视图控制器文件中包括
公共属性李>NSManagedObjectContext
- 从堆栈中的引用设置视图控制器中的公共属性
好的,很酷,所以我在AppDelegate.swift中的application()函数中只有这一行,那么我如何在,比如我的MasterViewController中访问它呢?为了方便起见,您可以在AppDelegate静态变量mObjectContext中添加一个静态属性:NSManagedObjectContext{return(UIApplication.sharedApplication().delegate as!AppDelegate).managedObjectContext}