1、nil: 指向一个对象的指针为空,当向nil发送消息时,返回NO,不会有异常,程序将继续执行下去,例如:
NSString *name = nil;
2、 Nil :指向一个类的指针为空,例如:
Class aClass = Nil;
3、 NULL:用于非对象指针赋空值,比如 指向C类型的指针为空,例如:
int *pInt = NULL;
char *chChar = NULL;
4、 NSNull:在Objective-C中是一个类,只是名字中有个Null,NSNull有 + (NSNull *)null; 单例方法,多用于集合(NSArray,NSDictionary)中值为空的对象,向NSNull的对象发送消息时会收到异常。例如:
NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] init];
[mutableDictionary setObject:nil forKey:@"Key"]; // 会引起Crash
[mutableDictionary setObject:[NSNull null] forKey:@"Key"]; // 不会引起Crash