0

私のアプリケーションでは、画像ファイルをテーブルビューのリストとして表示し、それらをフルサイズで複数のサムネイルとして表示する必要があります。したがって、基本的に、これら 3 つのビューを処理するために 3 つの個別のクラスを開発しました。ファイル操作を実行するには、次の 2 つの方法が考えられます。

  1. これらすべてのクラスの appdelegate オブジェクトを作成し、それに応じて処理します。写真ファイルに対して 1 つの操作が 1 つのクラスで実行されると、他のすべてのクラスはNSNotificationを使用して通知され、observer は Appdelegate オブジェクトとして保持されます。

  2. 必要に応じてこれらのクラスのオブジェクトをローカルに作成し、関連するメソッドを呼び出して、あるクラスから別のクラスにファイル操作を実行するためのデリゲートを割り当てます。

ただし、メモリ使用量とパフォーマンスの点でどちらのアプローチが優れているかを判断することはできませんでした。前もって感謝します。

4

2 に答える 2

0

これは、コードとアプリの構造に大きく依存します。私は通常、次の状況でデリゲートを使用します。

  • デリゲート オブジェクトが、それを必要とするメイン オブジェクトの前後に存在する場所。つまり、メイン オブジェクトはデリゲートのライフサイクルを気にする必要はありません。
  • オブジェクトとそのデリゲート オブジェクトの関係が厳密な 1 対 1 である場合。つまり、1 つのデリゲート オブジェクトだけがメイン オブジェクトと対話する必要があります。デリゲートが入れ替わる状況を見てきましたが、そのようなコードはお勧めしません。
  • メイン オブジェクトがデリゲートからの情報を必要とする場所。

次の場合に通知を使用します。

  • 複数のオブジェクトが、別のクラスで起こっていることを知る必要があります。
  • メインクラスが他のクラスと対話する必要がなく、それらが存在することさえ知らない場合。

どちらを選択しても、各イメージに対して複数のファイル管理オブジェクトはありません。単純な理由は、複数あるということは、それらがすべて同じ状態を持ち、相互に通信していることを確認する必要があるということです。そうしないと、バグが忍び込みます。

于 2012-09-10T06:09:12.613 に答える