1. 程式人生 > >[iOS]setValue和setObject區別

[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:的可以是任何型別