NSnull 导致程序crash

没有判断类型为NSNULL的情况会crash,下边是自己的一些后续研究
json是很常用的网络数据包格式,客户端和服务端之间经常使用json来传输数据。对于一些字典类型的数据,如果某项数据为空,则会传'<null>',使用JsonKit转换以后会生出相应的[NSNull null]对象,而这种对象对于iOS来说并不是十分安全的,例如约定好商品的某一项字段为string类型,结果JSON Kit转换为[NSNull null],这个时候如果不加判断就当做是NSString处理就会存在问题。所以对于这种数据类型直接转换为nil会更加安全,转换方法如下:

#define PASS_NULL_TO_NIL(instance) (([instance isKindOfClass:[NSNull class]]) ? nil : instance)

针对nil调用任何方法基本上都是安全的。

当然也可以每次都判断下,这就麻烦了,

data && ![data isKindOfClass:[NSNull class]] //data对象存在且 不是nsnull类型,这样在对其操作就安全了

有个疑问就是:
在model 终究不会crash,在字典中就容易出问题,求大神讲解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,291评论 1 9
  • 关键词/关键类 1.#import跟#include有什么区别,@class呢,#import<>跟#import...
    丶逐渐阅读 5,408评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,237评论 19 139
  • 别说你累 别说心累,累也别说。累了就咬咬牙走向户外,站立山巅映着桃红梨白,把疲惫远眺成“一览众山小”的豪迈。别说身...
    领读者赵友阅读 2,555评论 0 3
  • 清晨的公车上,晨练买菜的老人太多,一对老爷爷老奶奶无奈也只能站着。老奶奶大约是想车后方更空余,一步一步小心缓慢地往...
    并不知道该叫什么好阅读 1,441评论 0 0

友情链接更多精彩内容