今天看到偶然间看到一篇blog,“用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误”。
很实用的技巧,便拿来试验一下。
原文是在XCode3里面设置的,so在4里面完全找不到地方。stackoverflow搜一下,找到如下方法。
菜单里Product->EditScheme->Run->EnvironmentVariables, 添加NSZombieEnabled,YES。
顺便发现方法2,Product->按住alt/option+鼠标点"Run...",之后同上。
如果你和我一样操作了,一定发现了:按下alt/option键之后菜单边了,同理,按下Ctrl键之后菜单也变了。
神奇ing!
顺便在Navigate看到一条”Fix nextissue“,(按住Ctrl),原来XCode支持
自动修复简单错误。
试验发现只要报错信息里有fix方法的,都能用Ctrl+Command+'修复。
扯远了,再回到最初的目的,试验EXC_BAD_ACCESS错误。故意删掉一个数组的retain部分,用了NSZombieEnabled的调试信息里多了一行,“***-[__NSArrayI objectAtIndex:]: message sent to deallocated instance0x700aba0”
很准确的定位到了objectAtIndex函数(因为这里的NSArray是空的)。
确实能省不少力气。