1

だから私はココアでMVCアプリケーションを持っています。
いくつかのカスタム ビュー、コントローラー、およびモデルがあります。もちろん、ビューはいくつかのことを知る必要があるため、コントローラーからデータを取得します。ただし、コントローラーではアクセサーを使用せず、モデルを直接呼び出すキーパスで KVC を使用します。

// In view.m
time = [timeSource valueForKeyPath:@"theModel.currentTime"];
// timeSource is a pseudo-delegate of the view that holds the controller

これにより、物事が大幅に簡素化され、技術的にも、ビューはまだモデルを直接 (つまり、ポインターで) 知りません。しかしもちろん、彼らは直接アクセスします。

それはKVCとMVCの通常の(または少なくとも賢明な)使用法ですか?
または、この種のコミュニケーションをどのように実装しますか?

4

1 に答える 1

1

モデルを「知る」ことに非常に近いようです。ほとんどの人がそれをどのように行うかはわかりませんが、コントローラーでプロパティを作成する可能性が高くなります。私がそれを避ける理由は、モデルを変更するとビューが壊れてしまうからです。私が理解しているように、MVC の主な強みの 1 つは、モデルを変更してもビューを変更する必要がないことです。

于 2010-04-01T00:05:53.213 に答える