OC 中 Nil nil NULL NSNull 的区别

nil:对象的空指针  是一个空对象

Nil:  类的空指针     是一个空类

NULL:其它类型的空指针,如一个c类型的内存指针, 是一个值

NSNull:在集合对象中,表示空值的对象   

注意:

1.     若对象为nil:        [obj  test]将返回NO,而不是NSException(抛出异常)。

     若对象为NSNull:    [obj message]将抛出异常(NSException)


2.    nil在OC中的通过jump to Definition指向的定义为
        #ifndef nil
               #define nil NULL
        #endif /* ! nil */

       可以看出,其实nil只不过是NULL的另外一个别称而已。

       NULL在OC中的定义为:

       #ifndef NULL
             #define NULL    __DARWIN_NULL
       #endif /* ! NULL */

      从技术实现上来说,nil、NULL都是一样的。但是实际上这种方式能够增加代码的可读性。如果你给方法传递NULL值,那么参数就认为接收到的是C指针。如果是nil,那么认为接受的是一个对象。而Nil,则认为接受的是类(class)。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值