Ran*_*rns 3 memory iphone animation ios swift
我创建了一个只有以下内容的新 Xcode 项目:
当按下按钮并播放动画时,内存使用量会增加 150-200MB,具体取决于图像数组中的图像数量。然后内存使用量保持在那个水平。
设置 imageView.animationImages = nil 不会清除内存。我怎么能去清除那个记忆?
任何的意见都将会有帮助。谢谢!
我猜你在使用 UIImage(named:)?
此方法缓存图像,请参阅:https : //developer.apple.com/documentation/uikit/uiimage/1624146-init
苹果建议:
如果您有一个只显示一次的图像文件,并希望确保它不会被添加到系统的缓存中,您应该改为使用 imageWithContentsOfFile: 创建您的图像。这将使您的一次性图像远离系统图像缓存,从而有可能改善应用程序的内存使用特性。
因此,使用 'UIImage(contentsOfFile: String)' 应该可以解决您的问题。由于您需要提供图像路径的文档,图像名称是不够的,请参见此处:
https://developer.apple.com/documentation/uikit/uiimage/1624123-imagewithcontentsofile
那里还提到:
此方法不缓存图像对象。
当您将图像加载到本地数组时,请确保将其清空。
self.imageArray = []
Run Code Online (Sandbox Code Playgroud)
self.imageArray = []
self.imageView.animationImages = self.imageArray
Run Code Online (Sandbox Code Playgroud)
快速验证仪器中的分配:
如您所见,内存已被回收。都好。
归档时间: |
|
查看次数: |
1582 次 |
最近记录: |