本博客会不定期更新,将我在项目中常见的崩溃情况进行整理后分享给大家:
1.unrecognized seletor。错误:这种情况很简单,给一个对象发送了一条它不认识的消息。比如说你的.h中声明了某一个方法,但是.m中却没有实现,而且你没有对异常消息处理(消息转发)就会造成这种现象。解决办法:首先排查自己的某一些方法是否实现,其次看一下哪些对象接收了它不该接收的消息。
2.index 1 beyond NSArraMu [0,0]数组越界:数组越界这个不多说。
3.NSNul length 这个异常以可以归类为第一种,也是给某一个对象发送了不识别的消息。常见原因有:给UILabel对象设置了text,此时的text内容为空字符串null,然后你在取text的length的时候就会抛出异常。
4.EXC_BAD_ACCESS异常:这种大多数是对象提前释放,访问了野指针的错误。解决办法:排查所有声明为weak对象的使用,是否在没有持有的情况下再次访问了该对象(该对象已经被释放),第二在MRC情况下,排查一下所以已经release的对象(声明一点,MRC中全局变量最好在dealloc方法中进行释放),第三排查一下所有block,是否block被正常赋值等。
5.崩溃在main函数。这种情况最苦逼也是最难找到bug所在,这种情况下,用@try @catch将main函数包裹起来,这样会抛出异常堆栈信息等,或者通过添加全局breakPoint来追踪bug。
欢迎加入iOS技术交流群 :爱疯、爱Coding 群号:209476515
时间: 2024-10-12 18:14:25