`

NSZombies

 
阅读更多
NSZombies搞定EXC_BAD_ACCESS
http://blog.tianya.cn/blogger/post_read.asp?BlogID=2682988&PostID=25851784


http://mobile.51cto.com/iphone-279455.htm
1. 重写object的respondsToSelector方法,现实出现EXEC_BAD_ACCESS前访问的最后一个object

有时程序崩溃根本不知错误发生在什么地方。比如程序出现EXEC_BAD_ACCESS的时候,虽然大部分情况使用设定 NSZombieEnabled环境变量可以帮助你找到问题的所在,但少数情况下,即使设定了NSZombieEnabled环境变量,还是不知道程序崩 溃在什么地方。那么就需要使用下列代码进行帮助了:

#ifdef _FOR_DEBUG_ 
-(BOOL) respondsToSelector:(SEL)aSelector { 
    printf("SELECTOR: %s\n", [NSStringFromSelector(aSelector) UTF8String]); 
    return [super respondsToSelector:aSelector]; 

#endif 
你需要在每个object的.m或者.mm文件中加入上面代码,并且在 other c flags中加入-D _FOR_DEBUG_(记住请只在Debug Configuration下加入此标记)。这样当你程序崩溃时,Xcode的console上就会准确地记录了最后运行的object的方法。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics