我正在学习 Udemy 教程 Link 。这是我第一次使用 Core Data。这就是他们所拥有的:
let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
这就是我所拥有的:
let context = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext
我收到此错误:
Value of type 'AppDelegate' has no member 'managedObjectContext'
任何人都可以为我指明正确的方向,以了解这是语法问题还是我没有创建某些内容。
最佳答案
如果您在设置项目时选中/勾选了“使用核心数据”,则您的 AppDelegate
文件中应该有一个“预安装”核心数据“堆栈”,类似于在标题为“Core Data Stack”的 Apple 文档中进行了描述”。
您的 AppDelegate
应包含类似于标题为“Setting Up a Core Data Stack”的 Apple 文档中详细说明的代码。 ”,在“初始化持久容器”小标题下。
它很可能不包含 managedObjectContext
的属性。该错误解释了这一点。
我的猜测是,您需要在 AppDelegate
文件中为 managementObjectContext
添加一个属性,类似于此...
LINE 1
var managedObjectContext: NSManagedObjectContext!
(请注意,我已将此属性设为显式解包的可选 !
。)
然后在返回 NSPercientContainer
时设置此项。
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' 的 IOS Dev 值没有成员 'managedObjectContext' Xcode 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240082/