无法在Swift中创建对AppDelegate类的引用

Car*_*cia 1 cocoa core-data swift

我是初学者程序员,我的目标是OSX.我想创建一个对AppDelegate内部的托管对象上下文属性的引用,以便在我正在创建的Core Data项目中使用它

我试试

let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let aVariable = appDelegate.someVariable
Run Code Online (Sandbox Code Playgroud)

或使其变为可变,输入var而不是let.请问有人可以给我一些帮助吗?

谢谢

Ant*_*nio 6

对于macos应用程序,您必须使用NSApplication而不是UIApplication:

let appDelegate = NSApplication.sharedApplication().delegate as AppDelegate
Run Code Online (Sandbox Code Playgroud)

我假设您Cocoa Application在Xcode 中使用模板,并且您启用了Use Core Data复选框 - 在这种情况下NSApplication将使用managedObjectContext属性生成,定义如下:

var managedObjectContext: NSManagedObjectContext? {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是一个计算属性,返回一个可选属性,所以你必须在使用之前解开它.