美文网首页
nil NSNull NULL Nil的区别

nil NSNull NULL Nil的区别

作者: 晓_我想去环游世界 | 来源:发表于2017-04-17 17:23 被阅读20次

    一、nil

    我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉;

    或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统将这块内存释放掉,这个时候这个对象为nil,我称它为“空对象”。(注意:我这里强调的是“空对象”,下面我会拿它和“值为空的对象”作对比!!!)

    二、NSNull

    NSNull和nil的区别在于,nil是一个空对象,已经完全从内存中消失了,而如果我们想表达“我们需要有这样一个容器,但这个容器里什么也没有”的观念时,我们就用到NSNull,我称它为“值为空的对象”。如果你查阅开发文档你会发现NSNull这个类是继承NSObject,并且只有一个“+ (NSNull *) null;”类方法。这就说明NSNull对象拥有一个有效的内存地址,所以在程序中对它的任何引用都是不会导致程序崩溃的。

    三、Nil

    nil和Nil在使用上是没有严格限定的,也就是说凡是使用nil的地方都可以用Nil来代替,反之亦然。只不过从编程人员的规约中我们约定俗成地将nil表示一个空对象,Nil表示一个空类。

    四、NULL

    我们知道Object-C来源于C、支持于C,当然也有别于C。而NULL就是典型C语言的语法,它表示一个空指针,参考代码如下:

    int *ponit = NULL;

    相关文章

      网友评论

          本文标题:nil NSNull NULL Nil的区别

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