【问题标题】:Swift Image Memory快速图像记忆
【发布时间】:2018-03-26 10:33:03
【问题描述】:

我正在制作一个显示大量图像的应用程序,例如玩家对象的个人资料图像。我将所有图像都存储在 Media.xcassets 中,并且图像以它们所属的播放器对象的名称命名。

playerImage.image = UIImage(named: playerName)

我发现加载图像后,内存使用量会永久上升,尽管图像不再显示。例如,它可以增加 3/4 Mb,而图像文件只有 50kb 左右。即使在我离开 viewController 之后,显示图像的内存使用似乎仍然存在。 (我使用的是 unwind segues,所以没有 UITransitionViews 的堆叠)

(当我显示以前未显示的图像时,内存使用量会增加)

最终,当内存达到 1GB 左右时,应用程序会崩溃。有没有办法解决这个问题,或者减少内存使用?

【问题讨论】:

  • 它对你有用吗?如果是这样,最好接受答案,以便将来的用户知道。

标签: ios swift image memory memory-management


【解决方案1】:

上周我也遇到了同样的问题。我所做的就是改变一切:

UIImage named

到:

UIImage imageWithContentsOfFile

用第一种方法分配的内存似乎没有被垃圾收集器释放,而用第二种方法分配的内存是。


我不是快速大师,但我认为这会奏效:

UIImage(contentsOfFile: (Bundle.main .path(forResource: "imageName", ofType: "png"))!);

希望这会有所帮助。

【讨论】:

  • 我该如何用 swift 写出来?
猜你喜欢
  • 1970-01-01
  • 2019-09-28
  • 2019-01-14
  • 1970-01-01
  • 2019-06-19
  • 2012-05-09
  • 2012-08-28
  • 2016-06-09
  • 1970-01-01
相关资源
最近更新 更多