iphone:setObject:forKey:和setValue:forKey:在向可变字典添加条目方面有什么区别

iphone:setObject:forKey:和setValue:forKey:在向可变字典添加条目方面有什么区别,iphone,objective-c,ios,Iphone,Objective C,Ios,可能重复: 嗨 将给定的键值对添加到字典中 - (void)setObject:(id)anObject forKey:(id)aKey - (void)setValue:(id)value forKey:(NSString *)key 再次 将给定的键值对添加到字典中 - (void)setObject:(id)anObject forKey:(id)aKey - (void)setValue:(id)value forKey:(NSString *)key 那么它们之间有什么区别呢

可能重复:

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

- (void)setObject:(id)anObject forKey:(id)aKey
- (void)setValue:(id)value forKey:(NSString *)key
再次

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

- (void)setObject:(id)anObject forKey:(id)aKey
- (void)setValue:(id)value forKey:(NSString *)key
那么它们之间有什么区别呢? 差异是否仅在于接收参数? 能否使用setObject:forKey:代替setValue:forKey:?

:

从链接:

setValue:forKey:

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

setObject:forKey:

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

如果字典中已经存在aKey,则会向字典中该键的上一个值对象发送一条释放消息,并替换一个对象。

可能的重复项