コアデータから配列にuiimagesを追加して、それらのgifを作成しています。ios swift - 配列にuiimageを追加するときの未リリースのメモリ
私はgifを作成してから、配列を空にしています。しかし、私はgifを作成した瞬間からまだ50 MBのメモリが無限に割り振られています。
私は楽器を見てみました、これは私がコールツリーに取得していますものです:Call tree image
この
はコードです:
do{
let objects = try managedObjectContext.executeFetchRequest(request)
let results = objects
if results.count > 0 {
for var i = 0; i < results.count; i += 1{
let match = results[i] as! cFW
date.append(match.date)
let image = match.image
fetchedImage.append(UIImage(data: image)!)
}
} else {
}
}
catch{}
でもGIFおよび削除した後配列が既に削除されている場合、アプリケーションは50MBのメモリ使用量に留まります。私がいる問題は、私が(WebViewの中で)GIFを表示していますどのように関係しています:
はあなたに
編集ありがとうございました。私は、この問題が原因のWebViewでgif形式を提示することが起こっていたできるだけ早く
fetledImageのすべてのコンテンツを削除していますか?いつそれを削除しますか? –
gifを作成した直後です。さらに調査したところ、似たような問題を抱える人物の別のサイトに投稿がありました。「インストゥルメントを使ってこれをさらに研究し、VM:ImageIO_GIF_DataがGIFのフレームごとに1回呼び出されることに気付きました。呼び出されるたびに割り当てられるメモリはGIFのサイズに等しいため、UIImageViewにアニメーション化されたUIImageのインスタンスを割り当てると、iOSがそのフレーム内のすべてのフレームに対してイメージ全体を再割り当てすることを意味します。 – Japp
Webビューでイメージを表示している場合は、たぶんWebビューキャッシュ – Andrea