内容简介:使用NSNull代表空值
- (void)setObject:(ObjectType)anObject forKey:(id<NSCopying>)aKey; 复制代码
参数
- anObject
anObject
是 aKey
的值,dictionary强引用该对象。 如果anObject是nil,会引发NSInvalidArgumentException的异常,如果你想传一个空值在dictionary中,可以使用NSNull代表空值
使用NSNull代表空值
NSNull *nilValue = [NSNull null]; NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setObject:nilValue forKey:@"nilvalue"]; 复制代码
-
aKey
aKey,会引发NSInvalidArgumentException的异常
setObject:forKeyedSubscript:
声明
- (void)setObject:(ObjectType)obj forKeyedSubscript:(id<NSCopying>)key; 复制代码
参数
- object
object
是 aKey
的值,dictionary强引用该对象。如果object为nil,dictionary会将aKey的关联的object移除
object为nil,dictionary会将aKey的关联的object移除
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"name"] = @"jack"; //@{@"name":@"jack"}
dict[@"name"] = nil; //@{}
复制代码
-
aKey
aKey,会引发NSInvalidArgumentException的异常
说明
该方法和 setObject:forKey:
方法实现同样的功能。你不需要直接代用该方法。当你使用下标赋值的时候,会调用该方法。
id value = @"someValue"; mutableDictionary[@"someKey"] = value; //等效于[mutableDictionary setObject:value forKeyedSubscript:@"someKey"]; 复制代码
总结
-
当调用
setObject:forKey:传入nil的时候会崩溃,使用setObject:forKeyedSubscript:则不会 -
如果调用
setObject:forKey:需要传递空值,可以使用NSNull -
使用下标赋值等效于调用
setObject:forKeyedSubscript:方法
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web开发秘方
Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / 七印部落 / 华中科技大学出版社 / 2013-7-10 / 66.00元
猜猜硅谷的前端工程师怎么折腾JS的?想知道无限下拉的列表怎么做吗?你知道DropBox可以当Web服务器用吗?你知道怎么做出跨平台的幻灯片效果吗?不借助插件,怎样在移动设备上实现动画效果?怎样快速搭建和测试HTML电子邮箱?怎样制作跨PC和移动设备显示的应用界面?怎样利用最新的JavaScript框架(Backbone和Knockout)提高应用的响应速度?怎样有效利用CoffeeScript和S......一起来看看 《Web开发秘方》 这本书的介绍吧!