BikeRider
という関係プロパティを持つエンティティがあると仮定しましょうhelmets
。
アプリのマネージド オブジェクト コンテキストにバインドされた配列コントローラーがあり、エンティティが に設定されていBikeRider
ます。すべての自転車ライダーを一覧表示するテーブルビューがあります。
次に、アプリのマネージド オブジェクト コンテキストにバインドされた 2 つ目の配列コントローラーを用意し、エンティティを に設定しHelmet
ます。さらに、 にバインドされていbikeRiderArrayController.selection
ます。選択したバイク ライダーのすべてのヘルメットを一覧表示する 2 つ目のテーブルビューがあります。
ヘルメットを追加および削除するための 2 つのボタンもあります。セットアップは明らかに問題なく動作します。
もちろん、小さなことを除いて: 、 、 のように見え、-addHelmetsObject:
決して呼び出さ-removeHelmetsObject:
れません。これは、各ヘルメットのプロパティの監視を設定するためのコードが呼び出されないことを意味します。-addHelmets:
-removeHelmets:
color
私は何が欠けていますか?addHelmets:
et al を (適切なwillChangeValueForKey:
et al 通知を使用して)オーバーライドすることは、追加の通知を受け取る正しい方法ではありませんか?
[self observeValueForKey:@"helmets". . .]
どのオブジェクトが追加または削除されたかを把握するために、本当に必要な[oldValue minusSet:newValue]
のか、またその逆なのか? メソッドは過去に正しく呼び出されていたと断言できます。セットアップのいくつかの重要な要素が今とは異なっているのかもしれません。