我有一个基于 OSX 文档的应用程序,用 Swift 编写,并且想将一些数据从我的首选项窗口控制器提交到我的 managedObjectContext 中。
因为首选项窗口似乎不是通过 NSPersistentDocument 调用,而是直接从 appDelegate 调用,所以获取该控制器的 managedObjectContext 的最佳方法是什么?到目前为止,大部分工作都是使用故事板和绑定完成的。
我是否认为如果我在应用程序委托中实例化一个核心数据堆栈,这会否定通过 NSPersistentDocument 提供的堆栈(这将违背事情的目的)?
问问题
294 次
1 回答
3
这是什么数据?这些是特定于当前文档的某种设置吗?我很好奇,只是因为这里可能有不同的解决方案,具体取决于您想要完成的细节。
编辑:通常首选项应使用NSUserDefaults存储,但假设您确实需要将此数据存储在持久文档中,您应该能够使用NSDocumentController获取持久文档列表:
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
}
}
于 2016-06-04T22:19:29.237 回答