ios - Swift 应用程序的其他进程耗尽了所有 RAM 内存

标签 ios objective-c swift

我正在开发一个 iOS 视频播放器应用,我有 3 个 View Controller 。第一个 (VC1) 有一个带有标题的 Collection View ,其中包含带有水平 ScrollView 中图片的轮播,第二个 (VC2) 包含一个带有包含图像的标题的 Collection View ,第三个 (VC3) 是播放器.

当我在 VC1 和 VC2 之间切换多次(假设 10 次)时出现问题,因为每次我加载 VC2 时,Debug Navigator 中的“其他进程”都在增长而没有丢弃任何大量的 RAM 内存.

应用打开后统计:Statistics after the app has been opened:

我打开 VC2 7 次后的统计数据(再打开 2-3 次,它崩溃了 = 我失去了 Xcode 和我的 iPad 之间的连接):Statistics after I open VC2 for 7 times (2-3 more and it crashed = i lost the connection between Xcode and my iPad) :

我不明白为什么会这样,因为我每次回到 VC1 时都会弹出 VC2。

谢谢!

最佳答案

出于某种原因,当您的应用程序在您的实际设备中运行时,AVAssets 和可能由 Apple 提供的许多其他框架类未包含在您的应用程序的内存使用中。

我的猜测是内存是由内部的一些其他进程分配的。

但是,当 iOS 决定终止有问题的应用程序时,您的应用程序仍会因内存泄漏而受到指责。

你确定你没有保留对所有以前的 AVAssets 和类似对象的引用吗?

如果您在模拟器中运行相同的软件,您应该会看到一个明显泄漏的图表。

关于ios - Swift 应用程序的其他进程耗尽了所有 RAM 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198962/

相关文章:

iphone - 如何从 IOS 上的音量计算 dBr

ios - 表情符号键盘布局未正确绘制并且缺少许多表情符号

iphone - 使用 XCode 在 macOsX 上从 git.videolan.org 存储库构建 MobileVLCKit

objective-c - 按降序排列数组(NSArray)

swift - 无法转换类型的通用默认参数值

ios - PayMill SDK iOS swift 3.0 Xcode 8.1

ios - 如何将百分比值精确舍入到小数点后两位双倍?

objective-c - 如何抑制LLVM自动合成警告?

iphone - 核心数据保存更改撤消

ios - Swift:如何在更改 View 时停止背景音乐