自從我已經處理CoreData和macOS,到xib和nibs的日子已經有一段時間了。使用xib,可以使用「文件所有者」來訪問文檔和managedObjectContext。簡單。NSPersistentDocument,Swift,macOS和storyboards - 如何獲取managedObjectContext?
隨着NSPersistentDocument和我的故事板,我有點雞和雞蛋的問題。在我的文檔類,從NSPersistentDocument子類,我有以下幾點:
override func makeWindowControllers() {
// Returns the Storyboard that contains your Document window.
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let windowController = storyboard.instantiateControllerWithIdentifier("Document Window Controller") as! NSWindowController // <- when I need the moc
self.addWindowController(windowController)
windowController.contentViewController!.representedObject = self // <- when I set the representedObject
}
這似乎正是許多人,包括蘋果,所提出的建議。
我的問題是這樣的:在MainViewController中,我想擁有一個對象控制器,它需要綁定到managedObjectContext,但是當它需要擁有managedObjectContext時,我還沒有將representObject設置爲self。所以拋出一個異常。在makeWindowControllers方法的末尾設置representationObject爲時已晚,但我還是沒有看到它在早期得到它。