[iOS]setValue和setObject區別

1 setValue: forKey:的定義
@interface NSMutableDictionary(NSKeyValueCoding)

- (void)setValue:(id)value forKey:(NSString *)key;
@end
value 爲 nil ,調用 removeObject:forKey:
value不爲nil時調用 setObject:forKey:
key爲NSString類型。
2 setObject:forKey:的定義
@interface NSMutableDictionary : NSDictionary
- (void)removeObjectForKey:(id)aKey;
- (void)setObject:(id)anObject forKey:(id )aKey;
@end


anobject不能爲nil,而且key是一個id類型,不僅限於NSString類型


兩者的區別:
(1)setObject:forkey:中value是不能夠爲nil的;setValue:forKey:中value能夠爲nil,但是當value爲nil的時候,會自動調用removeObject:forKey方法
(2)setValue:forKey:中key只能夠是NSString類型,而setObject:forKey:的可以是任何類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章