序言
NSArray和NSDictionary是我们平常开发经常用到的,但是如果使用不当,也会造成一些问题,这里详细介绍
一 初始化方法
1.1 直接初始化
NSString *value = @"hello word";
NSArray *array = @[@"str1",@"str2",value,@"str3"];
NSDictionary *dict = @{@"key1":@"value1",
@"key2":@"value2",
@"key3":value,
@"key4":@"value4"
};
NSLog(@"%@",array);
NSLog(@"%@",dict);
打印结果

image.png
1.2 直接初始化-有空值
1.2.1 数组中某一个值为空
NSString *value = nil;
NSArray *array = @[@"str1",@"str2",value,@"str3"];
NSLog(@"%@",array);
打印结果

image.png
1.2.2 字典中某一个值为空
NSString *value = nil;
NSDictionary *dict = @{@"key1":@"value1",
@"key2":@"value2",
@"key3":value,
@"key4":@"value4"
};
NSLog(@"%@",dict);
打印结果

image.png
1.2.3 字典中某一个 key 为空
NSString *value = @"Hello word";
NSString *key = nil;
NSDictionary *dict = @{@"key1":@"value1",
@"key2":@"value2",
key:value,
@"key4":@"value4"
};
NSLog(@"%@",dict);
打印结果

image.png
结论
1.如果数组直接使用初始化的方法,数组中value不能为空,否则会崩溃。
2.如果字典直接使用初始化的方法,字典中的key和value不能为空,否则会崩溃。