4

Cocoa での通常のグッド プラクティスでは、それぞれNSViewが独自のNSViewController所有者を持つ必要があります。これをビューベースの各行に適用する必要がありますNSTableViewか?もしそうなら、これらの NSViewController を初期化してキャッシュするための適切な戦略は何ですか?

4

1 に答える 1

2

ほとんどの場合、これはやり過ぎです。すべて NSViewの人がコントローラーを持つ必要はありません。モデルレイヤーと関係のないビューについてはどうですか? その場合、メディエーター/コントローラーは不要でしょうか? 大規模なテーブルでは、これにより不要なコントローラー オブジェクトが急増する可能性があります。

ドキュメントにあるTableViewPlaygroundサンプル プロジェクトを詳しく見てみましょう。そのプロジェクトで、行を構成するさまざまなビューを Apple がどのように使用しているかに注目してください。特に、ATComplexTableViewControllerクラスとそれに関連する nib ファイルに注目してください。ここで、dataSourceテーブル ビューの は、dataSourceそれ自体がビューとモデルの間のメディエータとして機能するビューを返します。

于 2012-09-28T02:03:26.027 に答える