SetValue与SetObject
2016-08-04 本文已影响30人
再见远洋
最近有人问我setValue和setObject有什么区别,当时我就懵逼了,然后就开始谷歌,再此记录下:
NSMutableDictionary * dictM = [NSMutableDictionary dictionary];
/**
* 1.区别1就是value能否为nil
*/
//使用setObject的方式 如果value为nil就会产生崩溃
//[dictM setObject:nil forKey:@"key"];
//如果使用setValue是不会报错的 且当value 为nil的时候自动调用removeObject forKey方法
[dictM setValue:nil forKey:@"key"];
/**
* 2.区别2是key是否可以为多种类型
*/
//可以看到如果使用setObject方式 key值可以使任意类型
[dictM setObject:@"name" forKey:@(10)];
//可以看到使用setValue的方式 key 职能是字符串 如果是其他类型就会警告 且取不出来值
//[dictM setValue:@"name" forKey:@(10)];
NSLog(@"%@",dictM[@(10)]);
[NSDictionary description];
代码里都写的很清楚了,其实自己运行一次就知道了,这样也能够记忆更加深刻