您的位置:首页 > 其它

浅析nil、Nil、NULL和NSNull之间的区别与联系

2015-11-10 11:49 274 查看
时至今日终于可以坐下来写博客了,一直对nil、Nil、NULL和NSNull的理解很模糊,今天特来区分一下

首先说一下IOS中开发最常用的nil:

1、nil

nil表示一个空对象,用于给OC中的对象赋值。

执行下列语句:

NSLog(@"%@",nil);

printf("%p",nil);
输出结果是:
(null)

0x0
由此看出nil表示一个真实的对象,有地址,且值为null
注意这样一种情况:

2、Nil
其实nil和Nil没有严格的区别,凡是能用nil的地方,都可以使用Nil,但程序员往往喜欢用nil为一个实例对象赋值,而使用Nil为一个类对象赋值
3、NULL
由于OC是C语言的一个超集,自然有别于C,NULL表示一个空指针。为C语言所用。
4、NSNull
从名字就可以看出,NSNull是一个类,查看文档可以知道,该类继承于NSObject,且只用一个类方法 + (NSNull *)null;
在程序中,如果我们想使用一个实例对象表示这样一种情况:“我们需要有这样一个容器,但这个容器里什么也没有”这是我们就可以使用NSNull表示一个值为空的对象
使用方法如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: