内容简介:使用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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)
刘长龙 / 电子工业出版社 / 2019-1 / 99
也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究或工程项目上能独当一面。通过对Python 3及相关Web框架的学习和实践,你就可以成为这样的全能型人才。 《Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)》分为3篇:上篇是Python基础,带领初学者实践Python开发环境,掌握......一起来看看 《Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)》 这本书的介绍吧!