NSMutableDictionary 中使用setValueForKey 和 setObjectForKey有什么区别?


  • 根据官方文档说明: 一般情况下,如果给NSMutableDictionary 发送setValue 仍然是调用了 setObject方法, 如果参数 value 为 nil,则会调用removeObject 移除这个键值对;
  • setObjectForKey 是 NSMutableDictionary特有的, value 不能为 nil,否则会崩溃
  • setValueForKey 是KVC的,key 必须是字符串类型, setObject 的 key 可以是任意类型