私は、UIImageViewオブジェクトに配置された多数の小さな画像を使用しています。現在、メモリ警告、バックグラウンドでの滞在など、後で発生する可能性のある問題を予見しようとしています。私のアプリは10Mb未満ですが、それでも少し気になります。その理由は、多くのUIImageViewsが画面にロードされた後、アプリがバックグラウンドに移行し、その後長い時間が経過したときに、アプリがどのように状況に対処するのかが分かりません。画面上のすべてのUIImageViewをリロードする必要がありますか?iOSはUIImageViewオブジェクトのキャッシング/復元にいくつかのメカニズムを使用していますか?
私は、iOSがバックグラウンドでUIKitデータ(画像ビューなど)に対処することを読んだことがあります。そして、私はこれを復元することについて心配する必要はありません。私のUIImageViewオブジェクトがappディレクトリからPNG画像ファイルを直接使用するのであれば問題ありません。しかし、私はspritesheets(いくつかの画像が内部に詰め込まれたファイル)を使用していて、CGImageCreateWithImageInRectでそれらの画像を引っ張って、ある時点でUIImageViewに渡しています。さて、私は自分自身に疑問を呈しています.iOSが画面上のUIImageViewオブジェクトをキャッシュするか、またはアプリケーションがアクティブになったときに手動でUIImageViewsをリロードする必要がありますか?私は多くのアプリがバックグラウンドで実行されている場合、私の背景のアプリが殺されるかもしれないと私は理解しています。しかし、私のアプリがまだ生きている(バックグラウンドで)が、UIImageViewオブジェクトがリリースされている状況が心配です。知識と洞察を共有してください:)
ありがとうございました。 UIKitオブジェクトで作業するときの安全性に関するもう1つの意見:)私は、あなたが「しかし、キャッシュされたUIImagesのために実装された自動クリーンアップロジックがimageNamedメソッドを通して読み込まれました。あなたはそれを明確にすることができますか? – Centurion
それは本当です。バックグラウンドアプリがOSによって殺されると、データは保存されません。また、それらを開いても、自分で保存していない限り、以前のセッションのデータは復元されません。 –