在使用NSMutableDictionary的時候經(jīng)常會使用
setValue: forKey:
與setObject: forKey:
,他們經(jīng)常是可以交互使用的,代碼中經(jīng)常每一種的使用都有.
1.setValue: forKey:
的定義
@interface NSMutableDictionary(NSKeyValueCoding)
/* Send -setObject: forKey: to the receiver, unless the value is nil , in which case send - removeObject: forKey:
*/
- (void)setValue:(id)value forKey:(NSString *)key;
@end
譯: 擴(kuò)展NSMutableDictionary的一個類別骂际,發(fā)送setObject: forKey:
給接收者嫩与,也就是調(diào)用setObject: forKey
方法
除非value為nil的時候举反,調(diào)用方法removeObject: forKey:
2. setObject: forKey: 的定義
@interface NSMutableDictionary :NSDictionary
- (void)removeObjectForKey:(id)aKey;
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
@end
注意:setObject: forKey:
中Key的對象是一個id類型,并不是NSString,只是我們經(jīng)常使用的是NSString
3.總結(jié)
1.setObject: forKey:
中的value是不能夠?yàn)閚il的戚揭,不然會報錯
setValue: forKey:
中的value可以為nil ,當(dāng)value為nil 的時候柒瓣,會自動調(diào)用removeObject: forKey
方法
2.setValue: forKey:
中的key的參數(shù)只能是NSString類型儒搭,而setObject: forKey:
的可以是任何類型
3.上面所說的區(qū)別是針對調(diào)用者是dictionary而言的。
setObject: forKey:
方法NSMutableDictionary特有的,
setValue: forKey:
方法是KVC(鍵-值編碼)的主要方法芙贫。