OC中的nil、Nil、NULL、NSNull

关键词:OC,Objective-C,nil,Nil,NULL,NSNull

nil

nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。

NSString *someString = nil;
NSURL *someURL = nil;
id someObject = nil;
if (anotherObject == nil) // do something

Nil

Nil 是 ObjC 类类型的书面空值,对应 Class 类型对象。

Class someClass = Nil;
Class anotherClass = [NSString class];

NULL

NULL 是任意的 C 指针空值。

int *pointerToInt = NULL;
char *pointerToChar = NULL;
struct TreeNode *rootNode = NULL;

NSNull

NSNull 是一个代表空值的类,是一个 ObjC 对象。实际上它只有一个单例方法:+[NSNull null],一般用于表示集合中值为空的对象。

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:[NSNull null] forKey:@"someKey"];