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、多个线程同时释放一个对象