cocoa-touch - iOS 应用程序因 'message sent to deallocated instance' 而崩溃

标签 cocoa-touch ios debugging uialertview nsautoreleasepool

我的 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/

相关文章:

objective-c - Objective C 中可选的参数化 swift 框架方法?

objective-c - 用 MPMoviePlayer 播放电影——控件不会显示

debugging - gcc LTO 似乎剥离调试符号

iphone - 如何执行来自 iOS 应用程序的 URL 请求?

iphone - Xcode 4.6,用作前一个参数的名称而不是选择器的一部分

iOS : Google Analytics User Timing report is not updated in my Google Analytics Account

iphone - 模拟对象的惯性滚动

iOS 不确定在模态 VC 之后使用什么类型的 segue

php - 有 pretty-print 堆栈转储吗?

jquery - bootstrap selectpicker 和 bootstrap.js 文件之间存在冲突