Получение managedObjectContext в основанном на документе приложении для контроллера предпочтений
У меня есть приложение на основе документов OSX, написанное на языке Swift, и я хотел бы передать некоторые данные из моего окна-контроллера настроек в мой managedObjectContext.
Поскольку окно настроек, кажется, не вызывается через NSPersistentDocument, а напрямую из appDelegate, каков наилучший способ получить управляемый объект ObjectContext для этого контроллера? Делая большую часть этого, используя раскадровки и привязки до сих пор.
Правильно ли я считаю, что если я создаю экземпляр стека базовых данных в делегате приложения, то это сводит на нет тот, который предоставляется через NSPersistentDocument (что противоречило бы цели этой вещи)?
1 ответ
Что это за данные? Это какие-то настройки, специфичные для текущего документа? Мне любопытно только потому, что здесь могут быть разные решения в зависимости от того, чего вы хотите достичь.
Редактировать: Обычно предпочтения должны храниться с использованием 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
}
}