我一直在测试很多开源动画gif库,以便将GIF
个文件加载到我们的Swift
项目中。
他们中的大多数声称是高性能库,但是,每当我加载动画gif时,我的应用程序使用大约8MB的内存。
问题是这个专用内存空间似乎永远不会被释放。我们可以看到它呈线性增长:
这让我想知道我是否在这里做正确的事。这种行为是正确的,还是对用户可能有害?
答案 0 :(得分:4)
您需要手动删除Gif图像,以便从内存中清除它们。
示例: gifViwer可以是此示例中的Gif Viewer
self.gifViewer.removeFromSuperview()
self.gifViewer = nil
如果你必须分配一个委托,那么你也可以添加
self.gifViewer.Delegate = nil
注意:您需要在完全卸载viewControler
时运行此功能,因为应用会在视图移除时开始在视图中查找gifViewer
。如果你需要从内存中清除gif图像而不卸载视图,那么我建议使用上面的步骤,然后以编程方式将视图添加到superView。这不适用于界面设计师和IBOutlets
let gifViewer = yourGifViewerClass(frame: CGRect(x: 20, y: 20, width: self.view / 2, height: self.view / 2))
// setup your gifViewer