美文网首页
【iOS-随笔】nil Nil NULL NSNull 之间的

【iOS-随笔】nil Nil NULL NSNull 之间的

作者: 纪宝宝 | 来源:发表于2016-03-17 18:23 被阅读100次

    【概述】


    以前,对于他们的区别都是死记硬背的,这次写程序,遇了一个坑,后台返回一个字典里的字段

       zjjb = "<null>”
    

    然后我这样取:

    [[dict objectforkey:@"zjjb”] length]
    

    结果报错:

    CRASH: -[NSNull length]: unrecognized selector sent to instance
    

    巨坑!后来找到了解决办法,就准备来总结下他们几个之间的差别

    【差别总结】


    概念

    • nil:指向一个对象的空指针
    • Nil:指向一个类的空指针
    • NULL:指向其他类型(如:基本类型、C类型)的空指针
    • NSNull:通常表示集合中的空值

    使用举例:

    NSString * string= nil;
    Class class = Nil;
    int *pointerInt = NULL;
    [[dict objectforkey:@"zjjb”] isEqualto: [NSNull null]] 
    

    补充:

    1.为什么上面的array里面的空对象不直接用nil?

    [NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确

    2.为什么需要 NSNULL?

    对于像NSArray这样的类型,nil或NULL不能做为加到其中的Object,如果定义了一个NSArray,为其分配了内存,又想设置其中的内容为空,则可以用[NSNULL null]返回的对象来初始化NSArray中的内容

    3.NSNULL,NULL和nil在本质上应该是一样的,NULL和nil其实就是0

    </br>
    ——————————— 【 MadeBy 纪宝宝 】 ———————————

    相关文章

      网友评论

          本文标题:【iOS-随笔】nil Nil NULL NSNull 之间的

          本文链接:https://www.haomeiwen.com/subject/caeclttx.html