我正在开发一个 iOS 视频播放器应用,我有 3 个 View Controller 。第一个 (VC1) 有一个带有标题的 Collection View ,其中包含带有水平 ScrollView 中图片的轮播,第二个 (VC2) 包含一个带有包含图像的标题的 Collection View ,第三个 (VC3) 是播放器.
当我在 VC1 和 VC2 之间切换多次(假设 10 次)时出现问题,因为每次我加载 VC2 时,Debug Navigator 中的“其他进程”都在增长而没有丢弃任何大量的 RAM 内存.
应用打开后统计:
我打开 VC2 7 次后的统计数据(再打开 2-3 次,它崩溃了 = 我失去了 Xcode 和我的 iPad 之间的连接):
我不明白为什么会这样,因为我每次回到 VC1 时都会弹出 VC2。
谢谢!
最佳答案
出于某种原因,当您的应用程序在您的实际设备中运行时,AVAssets 和可能由 Apple 提供的许多其他框架类未包含在您的应用程序的内存使用中。
我的猜测是内存是由内部的一些其他进程分配的。
但是,当 iOS 决定终止有问题的应用程序时,您的应用程序仍会因内存泄漏而受到指责。
你确定你没有保留对所有以前的 AVAssets 和类似对象的引用吗?
如果您在模拟器中运行相同的软件,您应该会看到一个明显泄漏的图表。
关于ios - Swift 应用程序的其他进程耗尽了所有 RAM 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198962/