NSMutableDictionary的两个set方法有何不同

NSMutableDictionary有 setObejct:forKey: 和 setValue:forKey
平时在用的时候没有太在意二者区别,都是乱用的
这样会不会造成什么影响?两个有什么区别呢?

阅读 6.3k
2 个回答

setObject:forKey 这货的key只要不是nil就行,存储在dict里的只是对象的引用。

setValue:forKey这货的key必须是string,看样子dict会复制整个value保存起来。

根据官方文档的描述

setValue:forKey 会调用 setObejct:forKey: ,但有一个例外就是当 setObejct:forKey: 的value为nil的时候,会去调用 removeObjectForKey: ,也就是说会删除该key对应的value

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题