1

200 以上の UIImage オブジェクトをメモリ警告の問題なしに NSMutableDictionary にロードできます。

それらを画面に表示し始めると (約 10 ~ 20 個の画像を表示した後)、メモリ不足の警告が表示され、最終的にクラッシュします。

一度に約 8 つの画像のみが表示されます。

実際に画面に UIImage を描画するには、追加のメモリが必要ですか?

メモリリークは発生しておらず、リークのコードを何度も確認しました。

4

2 に答える 2

1

最初に画像へのリンクを作成する可能性があります。現時点で実際に読み取られるデータは、寸法と画像タイプ(つまり)のみです。残りのデータは通常、バックグラウンドプロセスから要求されるまで、つまり表示されるまで必要ありません。画面上で。表示されると、実際の画像データがファイルパスからダウンロードされ、その画像タイプに従ってデコードされます。その後、キャッシュされるため、再度ダウンロードする必要はありません。キャッシュには多くのメモリが必要です。また、ダブル/トリプルを使用している場合は、バッファリングオフスクリーン描画に必要な追加のメモリがあります。新しい画像を読み込む前に、すべての画像データを破棄してみてください。

于 2010-11-27T18:15:32.407 に答える
0

ドキュメントによると、UIImage画像キャッシュから消去される可能性があるため、画像が実際にメモリに保存されているとは限りません。しかし、それを描こうとすると、記憶に引き戻されると言われています。おそらく、メモリ不足の状態について警告する前に、画像キャッシュからのパージを開始します. それはあなたが見ているすべてを説明しています。

于 2010-05-27T00:47:38.557 に答える