200 以上の UIImage オブジェクトをメモリ警告の問題なしに NSMutableDictionary にロードできます。
それらを画面に表示し始めると (約 10 ~ 20 個の画像を表示した後)、メモリ不足の警告が表示され、最終的にクラッシュします。
一度に約 8 つの画像のみが表示されます。
実際に画面に UIImage を描画するには、追加のメモリが必要ですか?
メモリリークは発生しておらず、リークのコードを何度も確認しました。
200 以上の UIImage オブジェクトをメモリ警告の問題なしに NSMutableDictionary にロードできます。
それらを画面に表示し始めると (約 10 ~ 20 個の画像を表示した後)、メモリ不足の警告が表示され、最終的にクラッシュします。
一度に約 8 つの画像のみが表示されます。
実際に画面に UIImage を描画するには、追加のメモリが必要ですか?
メモリリークは発生しておらず、リークのコードを何度も確認しました。
最初に画像へのリンクを作成する可能性があります。現時点で実際に読み取られるデータは、寸法と画像タイプ(つまり)のみです。残りのデータは通常、バックグラウンドプロセスから要求されるまで、つまり表示されるまで必要ありません。画面上で。表示されると、実際の画像データがファイルパスからダウンロードされ、その画像タイプに従ってデコードされます。その後、キャッシュされるため、再度ダウンロードする必要はありません。キャッシュには多くのメモリが必要です。また、ダブル/トリプルを使用している場合は、バッファリングオフスクリーン描画に必要な追加のメモリがあります。新しい画像を読み込む前に、すべての画像データを破棄してみてください。
ドキュメントによると、UIImage
画像キャッシュから消去される可能性があるため、画像が実際にメモリに保存されているとは限りません。しかし、それを描こうとすると、記憶に引き戻されると言われています。おそらく、メモリ不足の状態について警告する前に、画像キャッシュからのパージを開始します. それはあなたが見ているすべてを説明しています。