アプリケーションに関するメモリの問題が発生しました。
私のアプリケーションでは、50 MB の画像をダウンロードして、iPhone アプリケーションに表示します。
メモリを管理しない例と適切な手順を提案してください。
2 に答える
すでに提案されているように、サーバー上で行う必要があります。
サーバー側でそれを行う方法がない場合は、小さいイメージと大きいイメージのダウンロードに違いはありません。
(または別の非同期アプローチを使用して)データをダウンロードし、データNSURLConnection
から画像を作成して画像ビューに設定するだけです。
ダウンロードしてデータを画像に変換するには時間がかかる場合があるため、ある種のアニメーションまたは進行状況を表示することをお勧めします。
パフォーマンスをさらに向上させるために、ダウンロード後に必要に応じてサイズを変更することをお勧めします。
オブジェクトを使用した直後にすべてのメモリを解放してください。
一般的に、iOS アプリは 50 MB の画像サイズを処理できると思います...
実際に(最大で)表示されるサイズと品質に合わせて調整します。このスケーリング/変換は、サーバー側で当然発生するはずです。
iOS デバイスの表示可能な最大ピクセル数は現在 3145728 (iPad 第 3 世代 - Retina) であることに注意してください。1 ピクセルあたり 3 ビット、圧縮なしを使用すると、ピクセル数が最も多いデバイスで10 MB 未満になります。
もちろん、ダウンロードのサイズと時間を最小限に抑えるために、圧縮を使用する必要があります(非可逆または可逆はあなた次第です)。ファイルが圧縮された後の結果のサイズは、信号の複雑さと圧縮に使用されるアルゴリズムによって異なります。入力の一部を期待してください。
Retina 以外の iPod または iPhone (第 3 世代の iPad よりもメモリが少ない) が、デバイスが表示できるサイズよりも数倍大きなファイルをダウンロードして処理する必要がないように、ソース ファイルを複数のサイズで保存することも検討する必要があります。