objective-c - EXC_BAD_ACCESS 消息发送到已释放的实例,但我使用的是 ARC?

标签 objective-c memory exc-bad-access automatic-ref-counting

我有一个从 SOAP Web 服务获取信息的应用程序,我想在 UITableView 中显示结果。

我有这个应用程序的早期版本,我正在创建一个新版本,以基本上清理并摆脱一堆已弃用且不再使用的遗留代码。

在以前的版本中,这运行良好。在新版本中,没有那么多。

基本上,当前方案返回 3 个字符串,我试图将它们用作 UITableView 中数据的基础。

我正在努力解决这个问题,因为很难找到 EXC_BAD_ACCESS 错误!

(顺便说一句,如果有人有办法让调试体验更像 Visual Studio,我很想听听!不知道是哪一行导致了错误,而且无法在崩溃时查看我的局部变量,看看是什么。我已经在异常断点中添加了,但这似乎没有多大作用。)

无论如何,导致错误出现的行是:

return [[self Libraries] count];

它出现在 tableView:numberOfRowsInSection:

我得到的错误消息是引用应该存储在 NSMutableArray [self Libraries] 中的字符串。

这是怎么回事?
我正在使用 ARC,所以不应该正确处理我的所有内存管理吗?
我的代码中没有任何手动发布声明!

请帮我解决这个问题!

最佳答案

设置 NSZombieEnabled , MallocStackLogging , 和 guard malloc在调试器中。然后,当您的应用程序崩溃时,在 gdb 控制台中输入以下内容:

(gdb) info malloc-history 0x543216

0x543216 替换为导致崩溃的对象的地址,您将获得更有用的堆栈跟踪,它应该可以帮助您查明代码中导致问题的确切行.

See this article for more detailed instructions.

关于objective-c - EXC_BAD_ACCESS 消息发送到已释放的实例,但我使用的是 ARC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940198/

相关文章:

objective-c - 将 NSStrings 转换为枚举的最佳方法

c - 在 C 中使用巨大数组的质数生成器

ios - Swift:使用字典中 ui 元素的值

python - 从特定内存地址/对象引用读取数据

.NET 资源泄漏陷阱

objective-c - 日期从字符串 : crash Objective C

iphone - EXC_BAD_ACCESS 在不同 View 中添加和删除 View 时

objective-c - 如何在 iPad 应用程序中添加电子邮件功能?

ios - 返回nil表示无法返回任何数据是否是错误的做法?

ios - 查找 URL 是否有效以及是否存在?