NSMutableDictionary setObject 和setValue的区别

先上苹果官方APi定义

SetValue:forKey

setValue是放在NSKeyValueCoding文件里,做了NSMutableDictionary针对KVC的一个分类扩展,这样专类专用的理解是对NSMutableDictionary特别针对KVC的适用延展,限定死key的类型必须为字符串类型,setValue实际也是调用字典的SetObject的方法,并当setObject为nil的时候会调用RemoveObject的方法,让这个nil的object从字典中移除。


setObject:forKey

setObject是放在NSDictionAry文件里,作为可变字典的一个API方法,调用对字典进行赋值,这里对setObject forKey中object和key都没有限定特定的类型,而是一个泛型。

Tip:实际使用中如无特定需求建议是使用setValue:forKey,setValue会针对value为nil的处理,setObject并不会对object为nil的处理,当setObejct为nil的时候会造成崩溃。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,757评论 0 9
  • 关键词/关键类 1.#import跟#include有什么区别,@class呢,#import<>跟#import...
    丶逐渐阅读 1,466评论 0 1
  • 今天测试项目,无网络状态下进入,会出现崩溃,看了下崩溃原因: *** setObjectForKey: objec...
    Chau_Yue阅读 460评论 0 1
  • 在使用 NSMutableDictionary 的时候经常会使用 setValue: forKey: 与setOb...
    伯牙呀阅读 4,640评论 0 7
  • 我是个多愁善感的东西 而汽水是我盛放感情的容器 我不喜欢烈酒 也不喜欢清水 我喜欢一切随着气泡 上升 破碎 散去
    化身鱼骨头的猫阅读 189评论 0 0