【发布时间】:2011-11-07 16:13:48
【问题描述】:
我的项目有调试问题。这个项目不是写得最好的,它有很多内存问题(泄漏,僵尸)。该项目不是我写的,所以我什至不知道其中的“小奇迹”。问题是,在项目的某个地方有一个带有自动释放选项的 NS(Mutable)Array。也许在另一部分给出了一个版本(我找不到确切的代码行,它在哪里)。
当我在设备上运行项目时,打开多个视图后会出现内存警告。 didReceiveMemoryWarning 方法得到了,但 viewDidUnload 没有。
也许项目在给定释放的情况下破坏了该数组,当内存警告出现并破坏自动释放池时,数组保留计数为 -1 => 它是一个僵尸。 问题是,在调试模式下没有显示任何调试行或调用堆栈,只有收到内存警告。
[Classname didReceiveMemoryWarning]
-> 并崩溃。 我启用了环境变量:NSZombieEnabled、NSHangOnUncaughtException、
NSAutoreleaseFreedObjectCheckEnabled, NSDebugEnabled, MallocStackLogging, MallocStackLoggingNoCompact, NSDeallocateZombies,但没有结果。
你知道我应该怎么做才能找出哪个数组是有罪的(不重写整个项目:P)?
【问题讨论】:
标签: iphone xcode debugging nsautoreleasepool