【问题标题】:Can I add an NSManagedObject to the selected parent object just using Interface Builder and Core Data?我可以仅使用 Interface Builder 和 Core Data 将 NSManagedObject 添加到选定的父对象吗?
【发布时间】:2012-10-11 01:48:24
【问题描述】:

我正在学习 Core Data,目前只使用 Interface Builder 和 XCode 数据模型(遵循 Aaron Hillegass Cocoa 书籍示例)。

我有一个 MVC 应用程序和核心数据,并在界面生成器中工作(还没有手写代码)。我已经设置了各种数组控制器、视图和按钮来添加和删除对象以及编辑数据并确定对象之间的关系。

但是,我的对象模型是严格分层的父子(和孙子),并且每个关系都是一对多的。因此,当我添加一个子对象(或孙子对象)时,我想自动将主 tableView 中当前选择的父对象分配为新子对象的父对象。

这在界面生成器中是否可行,还是我必须开始编写自己的方法?

任何关于我应该采取的下一步行动或如何自己解决问题的指示都非常感谢。我只是有点卡住,找不到相关的教程或参考。

如果我描述一下我的文档窗口,也许会有所帮助。它有两个带有添加/删除按钮的 tableViews。右侧的 tableView 显示了左侧 tableView 中选择的父对象的子对象的 NSSet。我希望右侧的添加按钮添加一个新对象并自动使其成为所选父对象的子对象,以便它出现在右侧的 tableView 中。

目前我可以在 arrayController 上看到子对象的唯一方法是 add: 和 remove: 但它们当然不会将新对象连接到当前选定的父对象。我是否需要将自己的 (IBAction) 方法添加到父对象,即 addChildObject:?还是有一种内置的方法可以根据父子关系在 CoreData 中自动添加子项?

【问题讨论】:

    标签: xcode core-data interface-builder nsmanagedobject


    【解决方案1】:

    问题解决了。我找到了一个教程(虽然有点过时),准确地描述了我正在尝试做的事情:

    https://developer.apple.com/cocoa/coredatatutorial/index.html

    在认真仔细地遵循每一步之后,我意识到我做的一切都是正确的,我只是错过了一个绑定:我只设置了子数组控制器的内容集,而不是它的托管对象上下文(给文件的所有者)。这是我的添加按钮没有添加新子对象的唯一原因!微不足道的错误,但是当您不确定时,您会质疑自己的整个方法,而不是寻找简单的错误。对于必须阅读此内容的任何人,我们深表歉意,但也许该教程的链接会对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-07-23
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      相关资源
      最近更新 更多