1

2つのCoreDataオブジェクトがあります。ItemsおよびTimeLog。itemsオブジェクトはTimeLogと1対多の関係にあり、IBとアレイコントローラーを使用して2を自動的に入力していますNSTableView

ここに画像の説明を入力してください

一番上のテーブルビューはアイテム用です。アイテムを選択すると、下部のテーブルに時間ログが表示されます。

ただし、アイテムを追加すると、アプリケーションがエラーでクラッシュします

<_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

このエラーの原因と、それを取り除くにはどうすればよいですか?

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

1 に答える 1

2

NSArrayController私は自分のために別のものを作成TimeLogし、そのようにテーブルを設定することでこれを解決しました。

TimeLogArraコントローラー

  • コントローラコンテンツの設定->コンテンツセット->Itemsアレイコントローラにバインドします。モデルキーパスtimeLog ここに画像の説明を入力してください

次に、テーブルの各列。

ここに画像の説明を入力してください ここに画像の説明を入力してください

于 2013-03-18T22:29:28.867 に答える