首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSPersistentDocument,Swift,macOS和故事板--如何获得managedObjectContext?

NSPersistentDocument,Swift,macOS和故事板--如何获得managedObjectContext?
EN

Stack Overflow用户
提问于 2016-07-16 03:36:38
回答 1查看 526关注 0票数 0

早在xib和nibs时代,我就已经有一段时间没有处理CoreData和macOS了。有了xib,就有了“文件的所有者”,可以让您访问文档和managedObjectContext。很简单。

与NSPersistentDocument和我的故事板,我有点鸡和鸡蛋的问题。在我的文档类(来自NSPersistentDocument的子类)中,我有以下内容:

代码语言:javascript
复制
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时,我还没有将representedObject设置为self。所以会抛出一个异常。将representedObject设置在makeWindowControllers方法的末尾已经太晚了,但我不认为可以更早地获得它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-16 16:06:04

好吧。所以。我不知道昨晚发生了什么,但我不可能做到这一点。

今天早上,我重读了有关representedObject的文档:

representedObject属性是键值编码和键值观察兼容的.当使用表示对象作为nib文件的所有者时,可以使用以字符串representedObject开头的键路径将控件绑定到文件所有者。

文档清楚地告诉我,魔法在representedObject中。因此,我确保我的makeWindowControllers方法和上面的一样,并且我确保我的故事板中的对象控制器是按照文档说的应该是的。

我一点也不奇怪这条路有一点(!)因为representedObject只是一个AnyObject。

然后,我尽职尽责地启动了这个应用程序,完全期待它不会起作用。

但成功了。不知道为什么昨天没有,但对于已经失去的时间我无能为力。

跟进:作为一个实验,我尝试了昨天的一个曲折。处理掉(!)为了方便地获得moc的引用,我将这个方法添加到MainViewController中:

代码语言:javascript
复制
var moc:NSManagedObjectContext? {
    if let doc = self.representedObject as? Document {
        return doc.managedObjectContext
    }
    return nil
}

然后我使用“self.moc”作为对象控制器的模型密钥路径。这不起作用,并且抛出了熟悉的异常。将模型关键路径还原为“self.representedObject.managedObjectContext”,所有这些都能很好地工作。…像魔法一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38407459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档