- (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:
方法