iphone:setObject:forKey:和setValue:forKey:在将条目添加到可变字典中的区别是啥[重复]

Posted

技术标签:

【中文标题】iphone:setObject:forKey:和setValue:forKey:在将条目添加到可变字典中的区别是啥[重复]【英文标题】:iphone: What is the difference between setObject:forKey: and setValue:forKey: in Adding Entries to a Mutable Dictionary [duplicate]iphone:setObject:forKey:和setValue:forKey:在将条目添加到可变字典中的区别是什么[重复] 【发布时间】:2011-05-28 11:57:08 【问题描述】:

可能重复:Where's the difference between setObject:forKey: and setValue:forKey: in NSMutableDictionary?

嗨,

setObject:forKey:

将给定的键值对添加到字典中。

- (void)setObject:(id)anObject forKey:(id)aKey

再次

setValue:forKey:

将给定的键值对添加到字典中。

- (void)setValue:(id)value forKey:(NSString *)key

那么它们之间有什么区别呢? 区别仅在于接收参数吗? 可以使用 setObject:forKey: 代替 setValue:forKey: 吗?

【问题讨论】:

1 2 的可能副本 【参考方案1】:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableDictionary/setValue:forKey:

来自链接:

setValue:forKey:

讨论 此方法使用 setObject:forKey: 将值和键添加到字典中,除非 value 为 nil,在这种情况下,该方法尝试使用 removeObjectForKey: 删除键。

setObject:forKey:

讨论 如果 aKey 或 anObject 为 nil,则引发 NSInvalidArgumentException。如果您需要在字典中表示一个 nil 值,请使用 NSNull。

如果字典中已经存在aKey,则向字典中该键的先前值对象发送释放消息,并由anObject代替。

【讨论】:

以上是关于iphone:setObject:forKey:和setValue:forKey:在将条目添加到可变字典中的区别是啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章

NSMutableArray 的 setValue:forKey: 和 setObject:forKey: 有啥区别?

setObject:forKey和setValue:forKey的区别

Objective-c setObject:forKey:和setValue:forKey:的区别

CKRecord setValue:forKey 或 setObject:forKey

setValue和setObject的区别

setValue和setObject的区别