iOS crash的场景与防护

2020-09-06  本文已影响0人  波吉c

1、找不到方法的实现unrecognized selector sent to instance

2、KVC造成的crash

3、EXC_BAD_ACCESS

4、KVO引起的崩溃

5、集合类相关崩溃

6、多线程中的崩溃

分析:
2、https://www.jianshu.com/p/ad91ba783c6b

3、EXC_BAD_ACCESS:
原因:访问的对象已经被释放,变成了野指针。比如用assign修饰代理属性;
解决:Debug阶段开启僵尸模式,Release时关闭僵尸模式

4、https://www.jianshu.com/p/d2efe84d9450

5、集合类相关崩溃:
原因:越界、添加nil、多线程非原子性操作、遍历的同时移除元素
解决:runtime方法替换,对异常情况做处理。

6、多线程中的崩溃:
原因:死锁(同步线程放到串行队列中)、子线程中更新UI、多个线程同时释放一个对象

参考:http://www.cocoachina.com/articles/27227

上一篇下一篇

猜你喜欢

热点阅读