nil、Nil、NULL与NSNull的区别

来源:互联网 发布:瑞星数据恢复中心 编辑:程序博客网 时间:2024/05/16 14:36

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






0 0
原创粉丝点击