Ios 类型为';AppDelegate';没有成员';managedObjectContext';Xcode 10

Ios 类型为';AppDelegate';没有成员';managedObjectContext';Xcode 10,ios,swift,xcode,core-data,Ios,Swift,Xcode,Core Data,我正在学习我的教程。这是我第一次使用核心数据。这就是他们所拥有的: let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 这就是我所拥有的: let context = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext 我得到这个错误: “AppDelegate”类型

我正在学习我的教程。这是我第一次使用核心数据。这就是他们所拥有的:

let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 
这就是我所拥有的:

let context = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext
我得到这个错误:

“AppDelegate”类型的值没有成员“managedObjectContext”


有谁能告诉我正确的方向,以了解这是语法问题还是我没有创建任何东西。

如果您在设置项目时选中了“使用核心数据”,您应该在
AppDelegate
文件中有一个“预安装的”核心数据“堆栈”,与标题为“”的Apple文档中描述的类似

您的
AppDelegate
应包含类似于标题为“”的苹果文档中“初始化持久容器”子标题下的详细代码

它很可能不包括
managedObjectContext
的属性。这个错误解释了这一点

我猜您需要在
AppDelegate
文件中为
managedObjectContext
添加一个属性,如下所示

LINE 1
var managedObjectContext: NSManagedObjectContext!
(请注意,我已将此属性设置为显式展开的可选属性

然后在返回
NSPersistentContainer
时设置此选项

LINE 2
self.managedObjectContext = container.viewContext
这些线的位置如下所示

class AppDelegate: UIResponder, UIApplicationDelegate {

    ...

    var managedObjectContext: NSManagedObjectContext!       //LINE 1

    lazy var persistentContainer: NSPersistentContainer = {        
        let container = NSPersistentContainer(name: "DataModel")
        container.loadPersistentStores { description, error in
            if let error = error {
                fatalError("Unable to load persistent stores: \(error)")
            }
        }

        self.managedObjectContext = container.viewContext   //LINE 2

        return container
    }()

    ... 
}

是否确实在创建项目时选择了核心数据?核心数据堆栈是否存在于AppDelegate中?创建新项目时,您必须选中
使用核心数据
以获取核心数据堆栈。是的可能重复,我有两个文件Item+CoreDataClass.swift和Item+CoreDataProperties.swift。