[iOS]setValue和setObject區別
阿新 • • 發佈:2018-11-19
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方法
@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:的可以是任何型別