1

Interface Builderは、XIBファイルに非ビュー/コントローラーオブジェクトを作成する機能を提供します。過去に、私はこの機能を使用して、XIBのビューコンポーネントを管理する小さなコンポーネントをインスタンス化して接続しましたが、これはかなり合理的なことのように思われました。

ただし、この機能には他にどのような正当な用途があるのでしょうか。このようなオブジェクトの依存関係をインスタンス化してコードからフレームワークに注入する責任を効果的に移すので、かなり魅力的なツールです。

Interface Builderの場合、この依存性注入機能を使用するためのガイドラインを知りたいのですが?

4

2 に答える 2

2

私が使用する経験則では、補助オブジェクトは、何らかの方法でニブで定義されているUIに関連している場合に配置できます。したがって、要素への参照を保持するプロキシオブジェクト、またはトリガーされるアクションのいずれかです。

プロキシメソッドはすべて、nibをロードするときに接続され、userinfoディクショナリを介して作成済みのオブジェクトを渡します。オプションで、nib名と一緒に渡すことができます。

ターゲット/アクションシステムを使用して複数のプロキシオブジェクトを接続する純粋に論理的なペン先では、まったく問題はないと思います。これは、コードですべての配線を行うよりも簡単かもしれませんが、実際に使用されているのは見たことがありません。

于 2009-07-15T16:45:30.020 に答える
1

ガイドラインはありません、あなたはあなた自身です。

teabotのコメントの後で編集してください:ほら、私には、ペン先のメモリ管理が実際にどのように機能するかはまだはっきりしていません。ペン先を所有するウィンドウコントローラーを解放すると、逆シリアル化されたオブジェクトは本当にメモリを残しますか?

ペン先コントロールとウィンドウコントローラーの間のバインディングを使用していると、リークが発生し、場合によっては、ペン先に関連する面白い煩わしさを自分で経験したことをどこかで読んだと思います。

また、いくつかのペン先関連のバグを、間違ったバインディングキーや、アクションIBリンクの欠落として追跡することは非常に困難です。

したがって、私はnibの内容を最小限に抑えることを好みます。通常、バインディング(通常は配列コントローラー)を最大限に活用するために必要なすべてのものを最小限に抑えますが、それ以上は使用しません。

[新しい質問のアイデアが浮かびました]

于 2009-07-15T16:43:57.387 に答える