A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© you7759 中级黑马   /  2014-12-11 22:24  /  1130 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      nil与null都是空指针。
1、在OC中对nil发送消息不会报错,对null发送消息就会报错,为何会如此?
2、这两者还有其他区别吗?

3 个回复

倒序浏览
我理解的是把一个对象赋值为NULL,其实他还是有地址的,只不过这个地址是0X0
但是把一个对象赋值为nil,那他就没有存储任何地址。
所以会出现你说的情况。
回复 使用道具 举报
#define nil  __DARWIN_NULL
#define Nil  __DARWIN_NULL

从宏定义看似乎是一个东西。nil一般用于对象 Nil一般用于类对象。
NULL用于普通指针。
NSNull *p = [NSNull null]; 是个NSNull的单例对象 是有地址的 我的理解是一种占位的“空对象”。
null直接提示未声明标识符。
回复 使用道具 举报
搜到的关于NIL nil   NULL  NSNull的
http://wenku.baidu.com/link?url=i4xJsMMNRrcm80IWtBpiIRt0oHZHIA2FoDu_rb7xw3XW9Lmhl9E4WjofOSZ84t3LloA6JKKwln2aHVmqGxPVKQeBv3bJys0UV59DVkVIjaS
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马