NSNull、NULL、Nil、nil

NSNull

在OC中继承于NSObject,有一个类方法:[NSNUll null],表示一个空对象。


NULL

NULL一般用来表示C指针为空,本质是(void*)0。

使用惯例:int *a = NULL;

char *c = NULL;


nil

表示指向OC对象的指针为空,

UILabel * label = nil。

do something...

还有,我们想要把一个对象回收的时候使用nil:

label = nil;


Nil

与nil一致,一般用在表示OC类中 Class类为空的情况:

Class class = Nil;


NSNull *myNull = [NSNull null];

NSArray*arr = [NSArrayarrayWithObjects:@"abc", myNull,@"123",nil];     //正确

NSDictionary*dict = [[NSDictionaryalloc]init];

[dictsetValue:nilforKey:@"haha"];   //会崩溃

总结

|标志      | 值                  |   含义   

|NSNull  | [NSNull null]  |  表示空值的OC对象

|NULL    | (void *) 0        | c 指针字面空值

| Nil        | Class 0           | OC 类的字面空值

| nil         | (id) 0               | OC 对象字面空值



你可能感兴趣的:(NSNull、NULL、Nil、nil)