私はuiimagepickercontroller uiimage memory やその他の関連する質問を読んだことがありますが、1 つのことについて頭を悩ませることができません。
私のアプリでは、ユーザーが自分のライブラリから画像を選択できるようにし、最終的にアップロードします。(ここで興味深いのは、そこにある画像が 12 メガピクセルの高品質カメラに由来する可能性があるということです。たとえば、iTunes は喜んでそれらを電話に同期します。)
さまざまな理由から、私UIImageJPEGRepresentation
はすぐにローカルに保存されたファイルに移動しました。
あまり考えずにUIImage
、ピッカーから返されたに固執しました。
Instruments のシミュレータでは、UIImage
によって返されたUIImagePickerController
がメモリを解放していることがわかります。これは、アクセスできないライブラリ内のファイルによってサポートされていることを意味しますか?
これは、上記にリンクされている回答のアドバイスが、完全な解像度が必要なときにすぐに画像を保存するということも、追加のオーバーヘッドにつながることを意味しますか? (少なくとも図書館の写真については)
さらに、カメラで撮影した画像には、まだ調査していない内部バッキングがある場合とない場合があります (シミュレーターが iSight を使用できないのはなぜですか?!)。そうでない場合、それは確かにメモリ ホグであり、最初に を実行し、UIImageJPEGRepresentation
次にを実行UIImage imageWithContentsOfFile:
してバッキングを有効にしますが、これにはかなりの遅延が伴います。
誰でも何か考えはありますか?