nil,Nil,NULL,NSNull区别
一般:
nil---指向对象类型的空指针
Nil---指向类类型的空指针
NULL---指向基本类型或c类型的空指针
NSNull---空对象,经常作为占位符使用
实际上
对象类型空指针---nil,Nil,NULL均可
类类型空指针---nil,Nil,NULL均可
基本类型---NULL可以,而nil,Nil不可,报错
NSString *a = nil;
NSLog(@"%@",a);
NSString *str = Nil;
NSLog(@"%@",str);
NSString *str2 = NULL;
NSLog(@"%@",str2);
int b = NULL;
int *bb = NULL;
// *bb = nil;//报错
// *bb = Nil;//和上面一样报错
Class class = Nil;
class = nil;
class = NULL;
NSNull使用
NSArray *array = [NSArray arrayWithObjects:[NSNull null],@"123",[NSNull null],@"456", nil];
for (NSString *content in array) {
NSLog(@"%@",content);
}
返回值
2014-12-05 09:38:33.015 IOSStudy[97922:3474037] <null>
2014-12-05 09:38:33.015 IOSStudy[97922:3474037] 123
2014-12-05 09:38:33.018 IOSStudy[97922:3474037] <null>
2014-12-05 09:38:33.018 IOSStudy[97922:3474037] 456
这部分还有需要注意的是在解析后台传过来的json数据的时候,如果遇到如"aaa":null,这是会被解析成NSNull的,而不是空,是空对象。