カスタムビューのバインドされたプロパティに問題があります。プロパティは、コアデータエンティティのNSArrayControllerにバインドされています。
ここに問題があります:
私の見解では、いくつかの長方形を描きます。これらの長方形の位置は、コアデータのエンティティに保存されます(NSValueでラップされたNSRectsとして)。長方形はドラッグ可能です。長方形をドラッグすると、エンティティが新しい位置に更新されます。しかし、arrayControllerをビューにバインドする方法がわかりません。
すべてがどのように接続されているかを次に示します。
ビューとarrayControllerへのアウトレットを備えたwindowControllerがあります。
arrayControllerは、windowControllerのmanagedObjectContextにバインドされているため、コアデータモデルにバインドされています。(そのバインディングとエンティティへのバインディングはInterface Builderで確立されます)
ビューは、ivar「rectangleValuesArray」を使用してarrayControllerにバインドされます
その最後のバインディングは、以下を使用してwindowControllerで確立されます。
[connectionsView bind:@"rectangleValuesArray"
toObject:elementsArrayController
withKeyPath:@"arrangedObjects.rectangleValue"
options:nil];
これまでのところうまくいきます。
今、私は反対方向のバインディングを確立しようとしました:
[elementsArrayController bind:@"arrangedObjects.rectangleValue"
toObject:connectionsView
withKeyPath:@"rectangleValuesArray"
options:nil];
これで、ivarを変更すると、エンティティが更新されます(右?)。しかし、それは機能しません-私はコンソールからそれを取得します:
Cocoa Bindings: Error setting value for bound property arrangedObjects.rectangleValue of object <NSArrayController: 0x200027100>[entity: Element, number of selected objects: 1]: [<NSArrayController 0x200027100> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key arrangedObjects.rectangleValue.
ここで何が間違っているのですか?誰か助けてくれませんか?
サイモン