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];

代码里都写的很清楚了,其实自己运行一次就知道了,这样也能够记忆更加深刻

上一篇下一篇

猜你喜欢

热点阅读