一对多核心数据绑定问题

时间:2013-03-18 21:26:52

标签: objective-c cocoa core-data

我有2个核心数据对象。 ItemsTimeLog。 items对象与TimeLog有一对多的关系,我使用IB和Array Controller自动填充2 NSTableView

enter image description here

顶部表视图用于项目。选择项目时,底部表格应填充时间日志。

但是,当我添加项目时,应用程序崩溃并出现错误

<_NSFaultingMutableSet 0x102e0e790> addObserver:forKeyPath:options:context:] is not supported. Key path: date

我正在使用阵列控制器自动填充所有信息。当我创建并添加项目时,我没有为timeLog关系设置任何内容,因为在他们第一次添加项目时没有时间添加。该对象正在保存,因为我在核心数据保存事件后触发了日志记录。

Items.h

@class TimeLog;

@interface Items : NSManagedObject

@property (nonatomic, retain) NSString * itemId;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * itemType;
@property (nonatomic, retain) NSSet *timeLog;
@end

@interface Items (CoreDataGeneratedAccessors)

- (void)addTimeLogObject:(TimeLog *)value;
- (void)removeTimeLogObject:(TimeLog *)value;
- (void)addTimeLog:(NSSet *)values;
- (void)removeTimeLog:(NSSet *)values;

@end

TimeLog.h

@class Items;

@interface TimeLog : NSManagedObject

@property (nonatomic, retain) NSString * time;
@property (nonatomic, retain) NSDate * date;
@property (nonatomic, retain) Items *item;

@end

导致此错误的原因是什么?如何摆脱它?

enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

我通过为NSArrayController创建另一个TimeLog并像这样设置表来解决此问题。

TimeLog Arra Controller

  • 设置控制器内容 - &gt;内容集 - &gt;绑定到Items阵列控制器。模型timeLog的关键路径 enter image description here

然后是表格的每一栏。

enter image description here enter image description here