iOS 中nil,Nil,NULL,NSNull的区别

Posted 6度XZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 中nil,Nil,NULL,NSNull的区别相关的知识,希望对你有一定的参考价值。

类与对象的概念

类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法)。

对象是类的一个实例,是一个具体的事物。

类与对象是抽象与具体的关系。

类其实就是一种数据类型,它的变量就是对象。

 

nil、Nil、NULL、NSNull的区别

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

Nil:指向一个类的空指针

NULL:指向其他类型(如:基本类型、C类型)的空指针

NSNull:通常表示集合中的空值

 

举例:

NSURL *url = nil;

Class class = Nil;

int *pointerInt = NULL;

NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];

 

为什么上面的array里面的空对象不直接用nil?

如果用nil,就会变成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil,  [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么数组到第二个位置就会结束。打印[array count]的话会显示1而不是4

所以[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确

以上是关于iOS 中nil,Nil,NULL,NSNull的区别的主要内容,如果未能解决你的问题,请参考以下文章

iOS中使用nil NULL NSNULL的区别

nil/Nil/NULL/NSNull区别

nil/Nil/NULL/NSNull

NULL & nil & Nil & NSNULL

nil Nil NULL NSNull 之间的区别

NSNull,nil,Null