2010-12-08 14 views
2

メモリに大量のイメージがたくさんある場合、UIImage's imageNamedという問題を引き起こすメモリ管理記事がいくつか見つかりました。UIImageのimageNamedは大きな画像のためにiOS4でメモリの問題を引き起こしますか?

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/http://www.alexcurylo.com/blog/2009/01/13/imagenamed-is-evil/

これらの両方は、OSバージョン< = 3.0のために書かれました。

これはまだiOS 4で問題があるかどうかは知っていますか?

答えて

3

問題が解決しない場合は、hereおよびmaybe hereを参照してください。このリンクを見れば

2

Dispelling the UIImage imageNamed: FUDあなたは大きな画像やimageNamedには二つの問題が本当にあるわかります

  1. のiOS 3.0より前だったimageNamedのキャッシング・ルーチンのバグ:ようにそれそれmem警告を受け取ったときでさえキャッシュを失いませんでした。これはかなり重大な問題で、個人的にはメモリクラッシュの原因となっていました。imageNamedを使ってメモリを取り戻す方法がないからです。これは3.0で修正されているようですので、これはもう問題ではありません。
  2. imageNamed:非圧縮の画像データ自体をキャッシュに保持します。実際には(画面上のサイズ - 幅x高さ)画像では、このデータは非常に大きくなる可能性があります。 width * height * 4は、私が一般に圧縮されていないサイズで引用したものです。かなり大きな画像を使用している場合、これは潜在的に問題になる可能性があります。特に頻繁に再描画する必要がない場合は、避けてください。

要約すると、1はもはや問題ではなく、2つの可能性があります。

+0

これは、各ピクセルがアルファ、赤、緑、青の4バイトを持つためです。 width * heightはピクセル数を示します。 – orkoden

0

があります。 UIPageViewControllerとの組み合わせでは間違いありません。 動物のサウンドと漫画のkeyFrameアニメーションを表示するキッズアプリケーションを作成しようとしています すべての個々の動物の詳細はそれぞれ独自のUIViewControllerにあります。 すべてのビューはUIPageViewController(Transition:scroll)に表示されます。 imageNamedバグについて知りませんでした。ほぼ1ヶ月間、UIPageViewControllerに起因する問題であると考えました。メモリはARCによって決して解放されませんでした。 ASA私はimageNamedではなくimageWithContentsOfFileに切り替えました。問題はすべて解決されました。 UIPageViewControllerは無実でした。今はスムーズに動作します。未リリースのメモリ問題はありません。

関連する問題