内容简介:使用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开发人员看的HTML5教程
2012-3 / 45.00元
《写给Web开发人员看的HTML5教程》通过结合大量实际案例和源代码对HTML5的重要特性进行了详细讲解,内容全面丰富,易于理解。全书共分为12章,从HTML5的历史故事讲起,涉及了文档结构和语义、智能表单、视频与音频、画布、SVG与MathML、地理定位、Web存储与离线Web应用程序、WebSockets套接字、WebWorker多线程、微数据以及以拖曳为代表的一些全局属性,涵盖了HTML5所......一起来看看 《写给Web开发人员看的HTML5教程》 这本书的介绍吧!