<分区>
请告诉我为什么废弃的内存不被视为泄漏的内存?
为什么在调用主对象的dealloc后,对象引用仍然存在。 ?
根据仪器,
泄漏的内存是:已分配的内存无法再访问。
废弃的内存:可访问的分配的从未使用过的内存。(浪费或遗忘的内存)
Ex:在 popOverController 被关闭后,该 viewController 中的所有变量都被释放,根据 INSTRUMENTS 没有泄漏。
但是当检查 Mark Heap 时,它告诉我一些内存正在被浪费。
正在释放所有变量。 一旦 View dealloc被调用,它就会释放所有对应的对象,对吗? 如果它无法发布,那么它将被归为Leaks。
请帮帮我,如何捕获这个被遗弃的内存?这背后的主要原因是什么(开发中最常见的错误)?
谢谢
最佳答案
泄漏的内存非常具体 - 这是您在代码中不再引用的已分配内存。
应用程序可以使用“太多”内存(例如,它将收到内存警告并被操作系统关闭),而不会泄漏单个字节。例如,一个巨大的 UIImage 对象数组可能会很快占用内存,但不会泄漏任何内存。
废弃的内存就属于这一类 - 如果您用对象占用内存空间,但从未访问它们,那么这就是废弃的内存。 Instrument 对“从不”的定义当然是只要您运行该仪器即可 - 您需要访问应用程序功能的所有区域。
现在我们已经清除了被遗弃/大量的困惑,您希望能够找到其他文章和答案,例如评论中的文章和 this related, if not duplicate, question
关于ios - 为什么在ios中废弃的内存不被视为泄漏内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372815/