iOS-NSArray和 NSDictionary 初始化优劣对比

1,129 阅读1分钟
原文链接: www.jianshu.com
序言

NSArrayNSDictionary是我们平常开发经常用到的,但是如果使用不当,也会造成一些问题,这里详细介绍

一 初始化方法
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.如果字典直接使用初始化的方法,字典中的keyvalue不能为空,否则会崩溃。