- (void)setObject:(ObjectType)anObject forKey:(id<NSCopying>)aKey;
複製代碼
anObject
是aKey
的值,dictionary強引用該對象。若是anObject是nil,會引起NSInvalidArgumentException的異常,若是你想傳一個空值在dictionary中,可使用NSNull表明空值
bash
使用NSNull表明空值ui
NSNull *nilValue = [NSNull null];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:nilValue forKey:@"nilvalue"];
複製代碼
aKey,會引起NSInvalidArgumentException的異常
- (void)setObject:(ObjectType)obj forKeyedSubscript:(id<NSCopying>)key;
複製代碼
object
是aKey
的值,dictionary強引用該對象。若是object爲nil,dictionary會將aKey的關聯的object移除spa
object爲nil,dictionary會將aKey的關聯的object移除code
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"name"] = @"jack"; //@{@"name":@"jack"}
dict[@"name"] = nil; //@{}
複製代碼
aKey,會引起NSInvalidArgumentException的異常
該方法和setObject:forKey:
方法實現一樣的功能。你不須要直接代用該方法。當你使用下標賦值的時候,會調用該方法。對象
id value = @"someValue";
mutableDictionary[@"someKey"] = value; //等效於[mutableDictionary setObject:value forKeyedSubscript:@"someKey"];
複製代碼
setObject:forKey:
傳入nil的時候會崩潰,使用setObject:forKeyedSubscript:
則不會setObject:forKey:
須要傳遞空值,可使用NSNullsetObject:forKeyedSubscript:
方法