iOS应用程序因"发送到已解除分配的实例的消息"而崩溃

Tri*_*ert 2 debugging cocoa-touch uialertview nsautoreleasepool ios

我的iOS应用程序具有许多网络功能.我当然将重要数据保存到文件系统以供离线查看等等,并且它曾经完美地工作而没有任何问题.现在,当我尝试使用飞行模式进行测试以模拟没有互联网连接时,GDB输出:

2011-04-17 21:34:13.291 Bronto Backup Mobile App[195:307] *** -[UIAlertView release]: message sent to deallocated instance 0x3e93630
Run Code Online (Sandbox Code Playgroud)

我在gdb中尝试了malloc调试,但它告诉我进程没有运行或找不到命令.我该如何找出错误发生的位置?backtrace只给了我通常的NSAutoreleasePoolPop东西.

为了爱我,我无法追查这个bug的位置.NSZombiesEnabled告诉我地址​​,但是malloc_history pid 0x3e93630只是告诉我一个错误,说gdb不知道这个命令,即使前面有信息.

BJ *_*mer 6

某些东西被保留不足或过度释放.使用Zombies模板在Instruments中运行您的应用程序.这将显示哪个对象有内存问题,并且可以让您查看该对象的整个保留/发布历史记录.这应该指向正确的方向.