0

iPhone アプリケーション (私の場合は比較的軽量なユーティリティ アプリケーション)の状態パターンは、メモリを使いすぎていませんか?

私が理解しているように、状態パターンはいくつかのクラスを使用します。これらのクラスは異なる状態を表します。さまざまな状態オブジェクトはすべてインスタンス化され、状態が必要になるまでさまざまなポインター変数に格納され、必要になった時点でcurStateオブジェクトに設定されます。

各状態オブジェクトを遅延読み込みして、メモリと読み込み時間を節約できると思います。アプリがメモリ警告を受け取った場合は、オブジェクトを解放できます。

しかし、私が知りたかったのは、このパターンは、iPhone OS アプリケーションで一般的に使用するにはメモリを使いすぎないかということです。iPhone 開発者はこのパターンから離れるべきですか? iPhone OS により適した別のパターンはありますか?

4

1 に答える 1

1

心配する価値はありません。状態が非常に複雑であるか、何千もの状態がある場合を除き、アプリケーション内のアート ファイルやメディア ファイルのサイズは完全に圧倒されます。

一般に、モデルオブジェクトのメモリ使用量を気にしないでください。Objective-C オブジェクトは、メモリ使用量の点で非常に軽量です。それぞれが他のオブジェクトへのポインターである半ダースのフィールドを持つかなり典型的なモデル クラスがある場合、そのクラスの各インスタンスの合計メモリ使用量は 32 バイト程度になります。それらの 1,000 個を配列またはその他のデータ構造に入れると、128x128 ビットマップとほぼ同じ量のメモリが使用されます。

アプリケーションの「動作中」の部分よりも、必要のないグラフィックスやサウンドに固執するために、メモリの問題に遭遇する可能性がはるかに高くなります。

于 2009-06-15T00:48:30.327 に答える