iOS-nil、Nil、NULL、NSNull

nil

nil是指一个不存在的OC对象指针,OC对象指针的空值。

NSObject *object = nil;

Nil

Nil是指一个不存在的OC类指针,OC类指针的空值。因为大部分代码中不需要引用class变量,所以Nil并不常用。

Class class = Nil;

NULL

NULL是指C指针的空值。

int *point = NULL;

NSNull

NSNull是用于表示空值对象的类。

NSNull经常用于NSArray、NSDictionary等,因为它们不能存储nil值,所以使用NSNull来代替nil。

//错误写法:nil为数组结束标志,所以此时该数组的count=2,所以数组不能存储nil值。
NSArray *array = [[NSArray array]initWithObjects:@"1",@"2",nil,@"4", nil];

//正确写法:[NSNull null]通常可以作为数组的占位符。
NSArray *array = [[NSArray array]initWithObjects:@"1",@"2",[NSNull null],@"4", nil];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
//错误写法,会出现编译错误。
[dict setObject:nil forKey:@"key"];

//正确写法
[dict setObject:[NSNull null] forKey:@"key"];

猜你喜欢

转载自blog.csdn.net/qq_36557133/article/details/87475430