1

我有一个基于 OSX 文档的应用程序,用 Swift 编写,并且想将一些数据从我的首选项窗口控制器提交到我的 managedObjectContext 中。
因为首选项窗口似乎不是通过 NSPersistentDocument 调用,而是直接从 appDelegate 调用,所以获取该控制器的 managedObjectContext 的最佳方法是什么?到目前为止,大部分工作都是使用故事板和绑定完成的。
我是否认为如果我在应用程序委托中实例化一个核心数据堆栈,这会否定通过 NSPersistentDocument 提供的堆栈(这将违背事情的目的)?

4

1 回答 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 回答