iOS 关于一个NSArray数组对象为Null的时候调用 .count 崩溃问题

1、今天遇到一个问题使用第三方SDK,在初始化SDK的时候,SDK内部返回了一个数据对象,但是这个对象本身是一个Null类型,所以在判断这个数组的时候出现闪退问题!
-w816
  • 在第1步SDK返回的对象list前面声明为NSArray类型,看到这里所以用了一个数组的常规方法进行判断,忽略了这个对象是被_Nullable修饰,就导致SDK内部返回的list为Null类型,所以在第2步的时候调用.count方法导致出错:
-w927
2、[NSObject(NSObject) doesNotRecognizeSelector:] + 132

因为NSNull类型对象找不到count这个方法,因为runtime消息转发机制,系统最终调用doesNotRecognizeSelector抛出异常。

3、总结

所以在以后使用方法,或者类型判断的时候,多考虑综合情况,尽量做好容错处理,避免一些特殊数据结构,或者数据类型问题导致崩溃,也是提高程序健壮性的一个标注!还有就是千万不要相信后台,做好前端的容错处理,最后代码修改为:

-w790
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。