setValue VS setObject

注: 本文暂时只描述在NSMutableDictionary的实例对象中使用 这两个api的区别

setValue:forKey:


 /* Send -setObject:forKey: to the receiver, unless the value is nil, in which case send -removeObjectForKey:.*/
- (void)setValue:(nullable ObjectType)value forKey:(NSString *)key;

这个API的key是 字符串类型的。value可以是任意对象类型。如果value的值传入了nil,则会调用-removeObjectForKey:,会移除这个key

setObject: forKey:


 - (void)setObject:(ObjectType)anObject forKey:(KeyType)aKey;

这个API的key可以是任意对象类型的。但是value不能是nil。如果是nil这抛出异常。


事实上 setObject是Dictionary的Api,setValue 是Object的Api。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容