我的 iOS 应用有很多网络功能。我当然将重要数据保存到文件系统以供离线查看等,并且它使用完美地工作,没有任何问题。现在,当我尝试使用飞行模式对此进行测试以模拟无互联网连接时,GDB 输出如下:
2011-04-17 21:34:13.291 Bronto Backup Mobile App[195:307] *** -[UIAlertView release]: message sent to deallocated instance 0x3e93630
我已经尝试在 gdb 中进行 malloc 调试,但它告诉我进程未运行或未找到命令。我将如何着手找出错误发生的位置? backtrace 只给了我通常的 NSAutoreleasePoolPop 东西。
看在我的份上,我就是找不到这个错误在哪里。 NSZombiesEnabled 告诉我地址,但是 malloc_history pid 0x3e93630
只是简单地向我抛出一个错误,说 gdb 不知道这个命令,即使前面有信息。
最佳答案
有些东西被保留不足或被过度释放。使用 Zombies 模板在 Instruments 中运行您的应用程序。这将向您显示哪个对象存在内存问题,并让您看到该对象的整个保留/释放历史记录。这应该会为您指明正确的方向。
关于cocoa-touch - iOS 应用程序因 'message sent to deallocated instance' 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5698575/