nil,Nil,NULL
nil
nil是指一个OC对象的空值表达,如下:
NSString *someString = nil;
NSURL *someURL = nil;
id someObject = nil;
if (anotherObject == nil) // do something
Nil
而Nil则是对于OC Class的空值表达,一般不太会涉及到用一个变量来引用Class,所以,不是很常用。
Class someClass = Nil;
Class anotherClass = [NSString class];
NULL
NULL是对任意C 指针的空值表达。
int *pointerToInt = NULL;
char *pointerToChar = NULL;
struct TreeNode *rootNode = NULL;
NSNull
NSNull是代表一个空值对象的类,意思是,在Class中,返回+ [NSNull null]的那个对象。
它和nil是不同的,因为nil是字面空值,也就是说,nil不是一个对象。
对于single instance来说,NSNull 它可以被看作是一个对象。
NSNull经常用于Foundation集合中因为它们不能存储空值,对于字典,objectForKey: 返回ni意味着给定的键值在字典