我有一个基于OSX文档的应用程序,用Swift编写,并希望将我的首选项窗口控制器中的一些数据提交到我的managedObjectContext中。
因为首选项窗口似乎不是通过NSPersistentDocument调用的,而是直接来自appDelegate,所以获取该控制器的managedObjectContext的最佳方法是什么?
到目前为止,使用故事板和绑定完成大部分操作。
我是否正确地认为,如果我在应用程序委托中实例化核心数据堆栈,则会否定通过NSPersistentDocument提供的核心数据堆栈(这会破坏事物的目的)?
答案 0 :(得分:2)
这是什么类型的数据?这些特定于当前文档的设置是什么?我很好奇,因为根据你想要完成的细节,这里可能会有不同的解决方案。
编辑:通常应使用NSUserDefaults存储偏好设置,但假设您确实需要将此数据存储在持久性文档中,则应该能够使用{{3获取持久文档的列表:
let documents = NSDocumentController.sharedDocumentController().documents
或者只获取当前文档。无论哪种方式,您都可以从那里获取托管对象上下文:
if let document = NSDocumentController.sharedDocumentController().currentDocument as? NSPersistentDocument {
if let context = document.managedObjectContext {
// do whatever is needed with the context
}
}