首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

记一次诡谲的崩溃事件

2012-08-25 
记一次诡异的崩溃事件下午临到一个演示的时候碰到一个诡异的程序崩溃事件,还好很快解决,不过也确实被吓到

记一次诡异的崩溃事件

下午临到一个演示的时候碰到一个诡异的程序崩溃事件,还好很快解决,不过也确实被吓到了。代码类似下面

?

xxxif(xxx)   line 1;else   lines 2;

?debug的时候,根据判断条件执行line1,然后继续,直到结束,突然跳回lines 2再次执行,报一个Access错误,程序崩溃。clean,重启XCode,相当诡异的是,结果都是一致的在lines 2上面崩溃。最终发现问题是出在前面有一段字符串语句

?

NSString *tmp=[json valueforkey:xxx];

?上面正确的做法是NSString *tmp=[[NSString alloc] initwithString:[json valueforkey:xxx]];,由于没有采用alloc做内存复制,正常来说应该是报一个double release的错误,不知道为何却会导致系统在退出函数前掉头执行lines 2,导致一个相当难检查的错误。严格来说这应该是XCode的bug,虽然是用户误操作导致的。

//***************************************************

最近这种debug时光标乱跳的情况发生比较频繁,一方面估计是刚好某些代码写的不规范,不过也反应出XCode还不是很成熟,这种情况太无厘头啦,只好细细梳理最近修改过的代码。

热点排行