字典容错处理

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
    
NSString *string;
[dictionary setValue:string forKey:@"1"]; // 不会崩,一般用这个,KVC啊,当然不会报错。
[dictionary setObject:string forKey:@"2"]; // 会崩

补充:

NSDictionary *dic = [NSDictionary dictionary];
[dic setValue:@"1" forKey:@"1"]; // 奔溃,会报setValue:forUndefinedKey错误。
// 首先没有这个@"1"key,其次dic是不可变字典,不是修改对应的value,变成了添加key-value,从而报错。

补充:
setValue: forKey:是NSObject方法,为某个属性赋值为空是非常正常的。

你可能感兴趣的:(字典容错处理)