黑马程序员技术交流社区

标题: nil与null的区别都有哪些? [打印本页]

作者: you7759    时间: 2014-12-11 22:24
标题: nil与null的区别都有哪些?
      nil与null都是空指针。
1、在OC中对nil发送消息不会报错,对null发送消息就会报错,为何会如此?
2、这两者还有其他区别吗?


作者: zwcshy    时间: 2014-12-12 10:44
我理解的是把一个对象赋值为NULL,其实他还是有地址的,只不过这个地址是0X0
但是把一个对象赋值为nil,那他就没有存储任何地址。
所以会出现你说的情况。
作者: 从今以后    时间: 2014-12-12 17:54
#define nil  __DARWIN_NULL
#define Nil  __DARWIN_NULL

从宏定义看似乎是一个东西。nil一般用于对象 Nil一般用于类对象。
NULL用于普通指针。
NSNull *p = [NSNull null]; 是个NSNull的单例对象 是有地址的 我的理解是一种占位的“空对象”。
null直接提示未声明标识符。
作者: you7759    时间: 2014-12-12 19:02
搜到的关于NIL nil   NULL  NSNull的
http://wenku.baidu.com/link?url=i4xJsMMNRrcm80IWtBpiIRt0oHZHIA2FoDu_rb7xw3XW9Lmhl9E4WjofOSZ84t3LloA6JKKwln2aHVmqGxPVKQeBv3bJys0UV59DVkVIjaS




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2