在基于文档的应用程序中为首选项控制器获取 managedObjectContext
Getting the managedObjectContext in a document-based app for preferences controller
我有一个 OSX 基于文档的应用程序,它是用 Swift 编写的,我想将一些数据从我的首选项 window 控制器提交到我的 managedObjectContext 中。
因为首选项 window 似乎不是通过 NSPersistentDocument 调用的,而是直接从 appDelegate 调用的,所以获取该控制器的 managedObjectContext 的最佳方法是什么?
到目前为止,大部分都是使用故事板和绑定来完成的。
如果我在应用程序委托中实例化一个核心数据堆栈,那么我是否认为通过 NSPersistentDocument 提供的堆栈无效(这将违背事物的目的)?
这是什么数据?这些是特定于当前文档的某种设置吗?我很好奇只是因为这里可能有不同的解决方案,具体取决于您想要完成的具体内容。
编辑:通常应该使用 NSUserDefaults, but assuming you do have a specific need to store this data in your persistent document, you should be able to use 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
}
}
我有一个 OSX 基于文档的应用程序,它是用 Swift 编写的,我想将一些数据从我的首选项 window 控制器提交到我的 managedObjectContext 中。
因为首选项 window 似乎不是通过 NSPersistentDocument 调用的,而是直接从 appDelegate 调用的,所以获取该控制器的 managedObjectContext 的最佳方法是什么?
到目前为止,大部分都是使用故事板和绑定来完成的。
如果我在应用程序委托中实例化一个核心数据堆栈,那么我是否认为通过 NSPersistentDocument 提供的堆栈无效(这将违背事物的目的)?
这是什么数据?这些是特定于当前文档的某种设置吗?我很好奇只是因为这里可能有不同的解决方案,具体取决于您想要完成的具体内容。
编辑:通常应该使用 NSUserDefaults, but assuming you do have a specific need to store this data in your persistent document, you should be able to use 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
}
}