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

时间:2014-07-15 09:44:44

标签: cocoa core-data swift

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

我试试

let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let aVariable = appDelegate.someVariable

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

由于

2 个答案:

答案 0 :(得分:6)

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

let appDelegate = NSApplication.sharedApplication().delegate as AppDelegate

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

var managedObjectContext: NSManagedObjectContext? {
    ...
}

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

答案 1 :(得分:1)

问题是您正在尝试使用OS X应用程序中的iOS框架中的代码。您需要NSApplication,UIApplication的OS X版本。

let appDelegate = NSApplication.sharedApplication().delegate as AppDelegate
let aVariable = appDelegate.someVariable