setValue:forKey 与 setObject:forKey

1、setValue:forKey

@interface NSMutableDictionary(NSKeyValueCoding)

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

中文翻译 :
发送setObject:forKey 给接收者,也就是调用setObject:forKey方法。除非value为nil的时候,调用方法removeObject:forKey

2、setObject:forKey

setValue:forKey 与 setObject:forKey_第1张图片
Snip20161130_2.png

注意
setObject:forKey:中Key的对象是一个id类型,并不是NSString,只不过我们经常使用NSString而已。

3、主要区别

  • setObject:forkey:中value是不能够为nil的,不然会报错。
  • setValue:forKey:中value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法
  • setValue:forKey:中key的参数只能够是NSString类型,而setObject:forKey:的可以是任何类型

你可能感兴趣的:(setValue:forKey 与 setObject:forKey)