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:的区别