在NSArray NSDictionary NSSet等集合对象中存储一个对象,若是该对象从后台获取时返回的是nil,则会出现如下代码下效果
NSMutableDictionary *params= [NSMutableDictionary dictionary];
[dic setObject:nil forKey:@"name"];
这样会出现Crash,因为nil无法存储一个空值。
而对NSArray来说,nil表示这个字典对象的元素截止了,即NSArray只会关注nil之前的对象,nil之后的对象会被忽略,比如:
NSArray *arr = [NSArray arrayWithObject:@"name",@"password",@"phoneNum",nil];
要想存储一个空值,可用[NSNull null]空对象来存储。如下:
[param setObject:[NSNull null] forKey:@"name"];
NSArray *arr = [NSArray arrayWithObject:@"name",@"password",@"phoneNum",[NSNull null],nil];
网友评论