我是初学程序员,我的目标是OSX。我想创建一个对AppDelegate内部的托管对象上下文属性的引用,以便在我正在创建的Core Data项目中使用它
我试试
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let aVariable = appDelegate.someVariable
或使其变为可变,输入var而不是let。 请问有人可以给我一些帮助吗?
由于
答案 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