3

NSObjectモデルを表す基本的なサブクラスを使用して、iPhone 用のクイズ アプリケーションを作成しています。実行時に、さまざまなコントローラーがモデル クラスをインスタンス化し、ディスク上の plist から読み取ったデータをモデル クラスに入力します。

モデル クラスは、多肢選択式クイズの基本的な階層を表します。

  • 1つのアプリケーションに多くのクイズがあります
  • 1つのクイズには多くの質問があります
  • 1つの質問には多くの答えがあります

現在、QuizControllerクラスがそのQuizオブジェクトをロードすると、そのquestions NSArrayプロパティにQuestionインスタンスが設定さQuestionれ、これらの各インスタンスが初期化されると、それぞれが独自NSArrayAnswerインスタンスを初期化します。

クイズをロードするときにメモリ内のすべての問題が必要ではないことを認識しています。Quizインスタンスのquestions配列内の特定のインデックスにある問題のみが必要です。

ある種の dataSource プロトコルまたは遅延読み込みパターンが、このシステムで特定のクイズを読み込むときに発生するメモリ フットプリントを削減するのに役立つと考えていますが、どちらを実装するかはわかりません。コミュニティからの次のような提案をいただければ幸いです。

ここで使用するのに適したパターンはどれですか? 短いコード スニペットも、実装方法を理解するのに非常に役立ちます。

4

1 に答える 1

3

メモリ使用量を最小限に抑えるための適切な設計には大賛成ですが、時には実用的である必要もあります。

古いデバイスのアプリでは少なくとも 20 MB のメモリを使用できるため、遅延読み込みの質問に多くの時間を費やすことが理にかなっているのかどうかは実際にはわかりません.

おそらく、何百もの質問を、気付かないうちに簡単にメモリにロードできます。

私のアドバイス: 怠惰でない方法から始めてください。インストルメントでメモリ使用量を調べます。許容できる場合はそのままにしておきます。限界を押し広げている場合は、最適化に時間を投資してください。

于 2010-03-01T04:05:39.620 に答える