Cocoa と Objective-C の初心者として、私は KVC と KVO について基本的な理解を持っています。ただし、Cocoa Bindings に関しては (「Cocoa Bindings Programming Topics」というタイトルの Apple ドキュメントで説明されているように、図 8 ~ 10 を参照してください)、KVO で十分と思われるのに、なぜ KVC と KVO の両方を使用して描かれているのかわかりません。KVO の ObserveValueForKeyPath:ofObject:change:context は古い値と新しい値を提供できるのに、なぜ KVC メカニズムが必要なのですか? KVO がどのようにオブジェクトを分離するかはわかりますが、KVC もそうです。
Apple が提供する例 (図 8 ~ 10) は、「温度」、コントローラー オブジェクト、および温度プロパティを持つモデル オブジェクトを設定および表示するためのユーザー操作を視覚的に表現して許可するスライダーとテキスト入力コントロールを含むウィンドウを示しています。別の言い方をすれば、私の質問は、なぜ 2 つのコントロールとコントローラーの間で双方向の KVO 関係 (それぞれがオブザーバーとして互いに登録する) と、モデル オブジェクトとコントローラーの間の双方向の KVO 関係を持たないのかということです。なぜ KVC が必要なのですか?