iOS setValue和setObject的区别
2019-05-29 本文已影响6人
72行代码
setObject:ForKey:
是NSMutableDictionary特有的;setValue:ForKey:
是KVC的主要方法
- 总结两者的区别:
-
setObject: forkey:
中object是不能够为nil -
setValue: forKey:
中value能够为nil,但是当value为nil的时候,会自动调用removeObject: forKey:
方法 -
setValue: forKey:
中key的参数只能够是NSString类型 -
setObject: forKey:
的key可以是任何类型
注意:setObject: forKey:
对象不能存放nil要与下面的这种情况区分:
[imageDictionary setObject:[NSNullnull] forKey:indexNumber];
[NSNull null]
表示的是一个空对象,并不是nil
当setValue: forKey:
方法调用者是对象的时候, setValue: forKey:
方法是在NSObject对象中创建的,也就是说所有的oc对象都有这个方法,所以可以用于任何类