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。