0

Core Data では、モデルに Worker、Task、SubTask の 3 つのエンティティがあります。それぞれに、その下のエンティティとの対多の関係と対 1 の逆関係があります。Worker には多くの Task があり、各 Task には多くの SubTask があり、各 SubTask には 1 つの parentTask があり、各 Task には 1 つの Worker があります。SubTask には、newObject メソッドで現在の時刻に設定される startTime 属性と、SubTaskArrayController クラスの endSubTask メソッドをトリガーするボタンがあります。endSubTask は、startTime から現在までの時間を計算し、その値を SubTask 属性 timeWorked に設定します。ここまでは順調ですね。問題:

選択したタスクの totalTimeWorked 属性を取得してそれ自体を更新する最良の方法は何ですか?

私が何かをしようとすると

[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];

私は得る:

[ setValue:forUndefinedKey:]: エンティティ SubTask は、キーparentTask.totalTimeWorked のキー値コーディングに準拠していません。

現在選択されている SubTask の parentTask の属性にアクセスするにはどうすればよいですか?

4

1 に答える 1

5

キーパスを使用しています。setValue:forKeyPath:代わりに使用する必要があります。

于 2010-01-12T17:38:15.540 に答える