虽然对后台每个字段判空是有必要,但是对后台每个字段进行判空感觉也是有点难不科学的,如果项目项目业务场景太多了,实际上没有办法保证每个点都去进行防止奔溃处理的。我觉得我们可以利用runtime一些机制去做一些一劳永逸的防奔溃措施,这是我列举的几个防止奔溃的方法,在本地demo有进行测试过,如果你们觉得可以,可以加到项目当中。
主要奔溃有几大原因:
1.AFN中的post方法中没有removesKeysWithNullValues 有关方法,但是get 方法中有(请参考这个链接
https://www.jianshu.com/p/873eab2a4878)
2.后台数据有一些null返回,这个时候我们可以用NullSafe这个工具类去拦截,消息转发机制,保证不奔溃
(https://github.com/nicklockwood/NullSafe)
3.数组取值越界,字典字面量取值取到null,字符串截取越界引发的一些奔溃,我们可以利用SafeObject工具类去做处理,这个第三方,我验证过,包括字面量取值方法也可以防止不奔溃 (https://github.com/MrLujh/SafeObject)
4.还有一种奔溃是访问坏内存导致的奔溃,例如过度释放造成,这个暂时还未想到非常好的办法去拦截奔溃
网友评论