类型 'AppDelegate' 的 IOS Dev 值没有成员 'managedObjectContext' Xcode 10

标签 ios swift xcode core-data

我正在学习 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/

相关文章:

ios - Google API 客户端 GTMHTTPUploadFetcher 重复

generics - 符合协议(protocol)的Swift泛型不能用来引用协议(protocol)?

ios - 我开始了一个针对 iPhone 和 iPad 的项目,但我想删除 iPad

objective-c - __不可用或 NS_UNAVAILABLE? NS_ROOT_CLASS 还是 OBJC_ROOT_CLASS?

javascript - 如何将 javascript 文件加载到 osx 应用程序中的 WebView 中?

iOS 从 UIView 创建 PDF

ios - UIBezierPath - byRoundingCorners - 矩形

ios - 尝试根据标识符删除多个本地通知

SwiftUI:发布自定义形状的更新

ios - 输入时逐字母验证 UITextField 文本