2016-03-20 71 views
0

我將uiimages從核心數據附加到數組以便創建它們的gif。ios swift - 將數組附加到數組時未釋放內存

我創建了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的內存使用量。

謝謝

編輯:我正在遇到的問題與我如何顯示GIF(在網頁視圖)做。我將用我的解決方案儘快更新問題

+0

那麼你有沒有刪除fetchedImage中的所有內容?你什麼時候刪除它 –

+0

在創建gif之後。經過進一步調查後,在另一個網站上發現了一個類似問題的人的帖子:「對此使用工具進行了更多的研究,並注意到VM:ImageIO_GIF_Data在GIF中的每一幀被調用一次,我還注意到每次調用內存時分配的內存都等於GIF的大小,這意味着當您將UIImage的動畫實例分配給UIImageView時,iOS將爲其中的每個幀重新分配整個圖像。「 – Japp

+0

如果您在Web視圖中查看圖像可能只是Web視圖緩存 – Andrea

回答

0

由於在webview中呈現gif,因此發生了此問題。

清除Web視圖的緩存不能解決內存分配問題。

我結束了使用FLAnimatedImage庫來呈現我的GIF。

沒有更多的未發佈的內存。

謝謝你們