Получение 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 } }

Другие вопросы по тегам