我正在获得EXC_BAD_ACCESS。我知道这通常意味着什么:尝试访问不存在的对象(不再)是最可能的原因。
那么,我在哪里找到它?
我在网上看过很多帖子,他们都说:
计划中的“启用NSZombie”。
现在,当我运行调试器时,我应该看看什么?我看不出任何差异......
注意:这不是关于我的代码中的特定错误,而是一般如何在启用NSZombie的情况下使用调试器
答案 0 :(得分:3)
我要做的是在绿色箭头上方一行找到一个断点,显示EXC_BAD_ACCESS错误。然后再次运行您的代码并重现生成崩溃的步骤。
当您到达断点时,您可以使用Xcode控制台左侧的右键单击和打印说明检查对象是否为有效对象,或者输入命令' po'在XCode的控制台部分。这就是我通常如何检测错误。
有用的是在调试器停止后跟踪堆栈。它在左侧面板中显示断点之前方法的线程和调用链。
希望这有所帮助,并希望我对如何跟踪错误的替代方案的描述有所帮助。
答案 1 :(得分:1)
在@synchronized(){}
块中编写代码。
试试这个:
@synchronized (self){ //Your Code }