捕获EXC_BAD_ACCESS

时间:2011-05-03 18:04:52

标签: objective-c

我在漫长的一天结束时编写了这段代码:

MyObject *thisObj;
// ... lots of code here ...
thisObj.name = @"test"; // Which caused an EXC_BAD_ACCESS as I hadn't alloc / init'd thisObj.

我花了很长时间才弄清楚我忘了初始化物体,所以我想知道 - 有什么方法可以捕捉到它。我试过设置NSZombie,但似乎没有做任何事情。

有关最佳方法的任何想法吗?

1 个答案:

答案 0 :(得分:5)

如果没有将变量初始化为某个值,则不要声明变量。甚至

MyObject *thisObj = nil;

优于

MyObject *thisObj;

可能有一个编译器标志可以打开以警告你。

编辑:

是的,您可以使用-wuninitialized -O(大写O,而不是0)来获取此信息:

enter image description here