2016-03-20 11 views
0

コアデータから配列に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形式を提示することが起こっていたできるだけ早く

+0

fetledImageのすべてのコンテンツを削除していますか?いつそれを削除しますか? –

+0

gifを作成した直後です。さらに調査したところ、似たような問題を抱える人物の別のサイトに投稿がありました。「インストゥルメントを使ってこれをさらに研究し、VM:ImageIO_GIF_DataがGIFのフレームごとに1回呼び出されることに気付きました。呼び出されるたびに割り当てられるメモリはGIFのサイズに等しいため、UIImageViewにアニメーション化されたUIImageのインスタンスを割り当てると、iOSがそのフレーム内のすべてのフレームに対してイメージ全体を再割り当てすることを意味します。 – Japp

+0

Webビューでイメージを表示している場合は、たぶんWebビューキャッシュ – Andrea

答えて

0

私の解決策との質問を更新します。

Webビューのキャッシュを消去しても、メモリの割り当てが解決されませんでした。

FLAnimatedImageへのライブラリを使用してGIFを表示しました。

リリースされていないメモリはありません。

ありがとう皆さん

関連する問題