内容简介:使用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:方法
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 理解原型其实是理解原型链
- 要理解深度学习,必须突破常规视角去理解优化
- 深入理解java虚拟机(1) -- 理解HotSpot内存区域
- 荐 【C++100问】深入理解理解顶层const和底层const
- 深入理解 HTTPS
- 深入理解 HTTPS
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
断点:互联网进化启示录
[美]杰夫·斯蒂贝尔 / 师蓉 / 中国人民大学出版社有限公司 / 2014-11-1 / CNY 49.00
一部神经学、生物学与互联网技术大融合的互联网进化史诗巨著。 我们正置身网络革命中。互联网的每一丝变化都与你我息息相关。当科技变得无处不在时,它就会改变你我。在《断点》一书中,大脑科学家和企业家杰夫·斯蒂贝尔将带领读者来到大脑、生物与技术的交汇处,向读者展示生物学和神经学是如何与互联网技术发生联系的;我们是如何通过生物学上的前车之鉴,来预测互联网的发展的;互联网在经历增长、断点和平衡后又会发生......一起来看看 《断点:互联网进化启示录》 这本书的介绍吧!