美文网首页iOS知识点
nil - Nil- Null - NSNull的区别

nil - Nil- Null - NSNull的区别

作者: RadioWaves | 来源:发表于2015-09-09 23:34 被阅读249次

今天去面试看到了关于这几个的区别,由于没有接触多久,对4个属性页有点陌生,回来后详细查阅了资料,得出以下的结论:

本质上来说nil,Nil,NULL和NSNull的值一样的,都为空,
虽然 nil, Nil, NULL和NSNull的值相同,
但是理解它们之间的书面意义才重要,
让代码更加明确,增加可读性。

nil 是给一个对象赋值为空,对应 id 类型的对象,或用@interface 声明的 ObjC 对象
原文:Nil -> Null-pointer to objective - c object

例如:
NSURL *url = nil;
NSString *someString = nil;
NSURL *someURL = nil;
id anyObjC = nil;
Nil 是 ObjC 类 类型的书面空值,对应 Class 类型对象
原文:Nil -> Null-pointer to objective - c class

例如:
Class  class = Nil;
Class anotherClass = [NSString class];
NULL 是任意的 C 指针空值,也或者是基本数据类型为空
null-> null pointer to primitive type or absence of data.

例如:
int *pointerInt = NULL;
int *pointerToInt = NULL;
char *pointerToChar = NULL;
NSNull 是一个代表空值的类,是一个 ObjC 对象。 一般用于表示集合中值为空的对象。
它只有一个单例方法:+[NSNull null];

// 因为 nil 被用来作为集合结束的标志,所以 nil 不能存储在 Foundation 集合里。
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", nil];

// 错误的使用
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:nil forKey:@"someKey"];

// 正确的使用
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:[NSNull null] forKey:@"someKey"];

相关文章

  • nil - Nil- Null - NSNull的区别

    今天去面试看到了关于这几个的区别,由于没有接触多久,对4个属性页有点陌生,回来后详细查阅了资料,得出以下的结论: ...

  • IOS 处理空字符串

    一、区别: nil、Nil、NULL和[NSNull null]的区别 1.nil 当一个对象置为nil时,这个对...

  • NULL、nil、Nil 和NSNULL

    转:nil、Nil、NULL和NSNull区别NULL、nil、Nil这三者对于Objective-C中值是一样的...

  • iOS nil、NULL、Nil 、NSNull的区别

    nil、Nil、NULL、NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NULL:...

  • nil、Nil、NULL、NSNULL

    nil、Nil、NULL、NSNull的区别 nil:是对objective c id 对象赋空值Nil:表示对类...

  • ios中的空值

    nil、Nil、NULL、NSNull的区别nil:指向一个对象的空指针Nil:指向一个类的空指针NULL:指向其...

  • nil、Nil、NULL和NSNull区别

    nil、Nil、NULL和NSNull区别 对于我们Objective-C开发来说,nil就代表((void *)...

  • 转:IOS一些面试题整理

    斐波那契数列(Fibonacci sequence) nil、Nil、NULL、NSNull的区别 网络图片处理 ...

  • 查漏补缺

    1.NSObject和id的区别 2.id类型, nil , Nil ,NULL和NSNULL的区别? 3.SMu...

  • Null、Nil、nil和NSNull的区别

    NSNull是一个单例对象:NSNull的声明: 注意前方高能: NULL、nil、Nil本质上没有任何区别都是一...

网友评论

本文标题:nil - Nil- Null - NSNull的区别

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