您的位置:首页 > 移动开发 > IOS开发

当程序崩溃的时候怎么办 Part-2 iphone iOS

2013-02-21 16:22 369 查看
当程序崩溃的时候怎么办 iphone iOS
http://article.ityran.com/archives/1143
这篇文章真的很好,昨晚加班回来十点多了,顶着巨困看完的,真刁丝日子就是不易啊,今天看完电影回来趁着感觉还比较新鲜,赶紧把这篇读后感写下来。

当然文中的,nslong,和断点调试,本来就会了。

1.Zombies这招,今天上班调试一个内存泄露的问题,小试锋芒,觉得还是比较给力的。

2.我可以用 po p命令,这样方便的地方就是你可以省略很多额外增加NSLog()的步骤和从新编译这个app。(这个解开了,我在看系列第一篇的时候的一个疑惑)

你也可以在调试窗口的左边看到这些变量,但是就算看到了也不是很方便就能知道细节的,(这点让我觉得很坑爹,还是又有我理解不到位的地方?)

原文总结的很好了,我拷贝一下

秘诀:

1.假如崩溃在main.m里面,就可以设置全局异常断点(Exception Breakpoint)。

2.在异常断点开启的状态下,你也没有得到得到有用的信息。在这种情况下,多继续几次运行这个app,或者在调试提示后面输入“po $eax”命令。

3.大多数崩溃的一般原因和一些bug都是在你的xib中或者storyboard中的连接丢失了或者是错误的连接。这些情况不会在编译错误里面显示,因此你一般不知道。

4.不要忽略编译警告。假如你有编译警告,就说明你有些东西可能会出错。假如你不知道为什么你会到一个编译警告,最好去搞明白它. 这些都是安全的做法!

5.在设备上调试可能会和在模拟器上面有些微的不同。这两个环境不是完全一样,你将会得到不同的结果。

例如,当你运行一个有问题的程序在iphone4上的时候,这第一个崩溃就会发生在NSArray初始化的时候,因为你缺少一个nil标记,而不是会因为当这个app执行setList:的时候的时候崩溃。所以说上面那个原则方法就可以帮你找到崩溃问题的根源本质。

不要忘记静态分析工具(static analyzer tool),这个工具将会捕获更多的错误。假如你是一个初学者,推荐你开启它。你可以在Build Settings界面上为你的工程设置:

血的教训啊,

血的教训啊,

血的教训啊,

血的教训啊,

myKeys = [[NSArray alloc]initWithObjects:@"ImageFileName",@"TitleText",@"DetailText", @"link","number",@"currency",nil];

就停在这句话报的错是,exc_bad_access。你能看出来什么错吗?

我花了一天时间,以为是过度释放,结果,到后来发现不是这么回事,所以,如果你是初学者,打开他吧,xcode会给你提示的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: