当试图在视图控制器中创建新上下文时,“AppDelegate”类型的值在新的Xcode 8(使用Swift 3,iOS 10)中没有成员“managedObjectContext”

let context = (UIApplication.shared().delegate as! AppDelegate).managedObjectContext

在Xcode 8中,AppDelegate.swift文件中没有managedObjectContext的代码。AppDelegate.swift中的核心数据堆栈代码仅显示为:lazy var persistentContainer:NSPersistentContainer属性和func saveContext()。没有managedObjectContext属性。
如何在Xcode 8)中使用Swift 3创建managedObjectContext,或者不需要使用swift3?

最佳答案

在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。
注意:对于Swift3,ManagedObject子类是自动生成的。
WWDC 2016查看更多

关于ios - 如何在Xcode 8中使用Swift 3创建managedObjectContext?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34635567/

10-12 00:27