if(currentCat != nil) {
if ([currentCat hasValidTag]) {...}}
我在第二行收到了一个exc_bad_access。目前,retainCat的retainCount为2,堆栈跟踪中没有自动释放。 代码由一个事件触发并执行十一次而没有任何问题每一次运行失败(我真的不知道为什么十二个)。
我的堆栈跟踪: 1. obj_msg发送 2。 3.“呼叫方法” - >好 ...
据我所知,存在的对象不是零。我看不出任何bad_access的原因。 不知道这里发生了什么。
答案 0 :(得分:0)
您的代码中的其他内容可能会触发错误 - 或者它可能是hasValidTag
引用的属性之一。尝试通过Product>调用静态分析器分析。如果这不起作用,请尝试使用Zombies
工具(产品>配置文件)。
答案 1 :(得分:0)
关于你的代码没什么好说的,但是exc_bad_access错误本身可以解决你的问题。
当您在已发布的对象上调用消息时,您将获得exc_bad_access。您可以尝试use Instruments with NSZumbie跟踪您的对象并找出导致此错误的原因。
OBS。:在您的代码中,第一个条件
if(currentCat != nil)
有点无意义,因为第二个条件
if ([currentCat hasValidTag])
足以检查currentCat是否为零。将消息调用为nil将返回nil并且不执行任何操作。所以不会调用第二个'if'块。