【发布时间】:2017-02-03 09:05:13
【问题描述】:
我有两个类 A 和 B,从 A 到 n B 的关系是 1:n。 A中有关系属性bs(无序),B中有a关系属性。
A 和 B 实际上是 NSManagedObject 从项目的核心数据模型中自动生成的。
在 NSViewController 中,我有一个 ArrayController 和一个基于单元格的 NSTableView,我需要通过它来显示和管理 b。
ArrayController 有:
- 模式:类
- 类名:B
- 内容集绑定到 a.bs
表格的每一列都绑定到Array Controller 的arrayObjects.b_attribute
表格按预期显示了 b,我可以对其进行编辑。
尝试添加新 b 时出现问题。
控制器有一个按钮,其动作绑定到Array Controller add: 方法。
不幸的是,当我按下按钮时,出现以下错误:
error: CoreData: error: Failed to call designated initializer
on NSManagedObject class 'B'
CoreData: error: CoreData: error: Failed to call designated
initializer on NSManagedObject class 'B'
挖掘 StackOverflow 我发现问题可能与使用以下方法创建托管对象有关:
... = [[B alloc] init];
而不是
... = [NSEntityDescription insertNewObjectForEntityForName:@"B" inManagedObjectContext:_managedObjectContext];
由于我没有显式创建 b 对象,我认为情况并非如此,但我无法弄清楚我做错了什么。
提前感谢您提供的任何帮助。
【问题讨论】:
标签: macos cocoa core-data cocoa-bindings nsarraycontroller