我在漫长的一天结束时编写了这段代码:
MyObject *thisObj;
// ... lots of code here ...
thisObj.name = @"test"; // Which caused an EXC_BAD_ACCESS as I hadn't alloc / init'd thisObj.
Run Code Online (Sandbox Code Playgroud)
我花了很长时间才弄清楚我忘了初始化物体,所以我想知道 - 有没有办法解决这个问题.我试过设置NSZombie,但似乎没有做任何事情.
有关最佳方法的任何想法吗?
如果没有将变量初始化为某个值,则不要声明变量.甚至
MyObject *thisObj = nil;
Run Code Online (Sandbox Code Playgroud)
比.更好
MyObject *thisObj;
Run Code Online (Sandbox Code Playgroud)
可能有一个编译器标志,你可以打开警告你这个.
编辑:
是的,您可以使用-wuninitialized -O(大写O,而不是0)来获得:

| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |