尝试在视图控制器中创建新上下文时,在新的 Xcode 8(使用 Swift 3、iOS 10)中遇到问题“‘AppDelegate’类型的值没有成员‘managementObjectContext’
let context = (UIApplication.shared().delegate as! AppDelegate).managedObjectContext
在 Xcode 8 中,AppDelegate.swift 文件内没有 ManagedObjectContext 的代码。 AppDelegate.swift 内的核心数据堆栈代码仅提供:lazy var permanentContainer: NSPercientContainer property 和 func saveContext () 。没有 ManagedObjectContext 属性。
如何在 Xcode 8 中使用 Swift 3 创建 ManagedObjectContext ,或者也许不需要使用 Swift 3 创建管理对象上下文?
在 Swift3 中,您可以通过 viewContext 访问 ManagedObjectContext,如下所示
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
如果创建项目时启用了核心数据,则此选项可用。但是,对于要包含核心数据的现有项目,请完成添加核心数据的正常过程并添加以下代码,这将允许您获取
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "you_model_file_name")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
您将需要导入 CoreData。
注意:对于 Swift 3,托管对象子类是自动生成的。
查看更多来自2016 年全球开发者大会
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)