NSMutableDictionary 添加元素时,需要注意的点

2020-03-27  本文已影响0人  大成小栈

NSMutableDictionary的用法很简单,其基本用法包括像NSMutableDictionary实例中追加元素、删除元素、修改元素,每个元素都以 {key:value} 的形式存储。

添加元素时,需要注意的点

extension NSMutableDictionary {

    // Send -setObject:forKey: to the receiver, unless the value is nil, 
    // in which case send -removeObjectForKey:.
    open func setValue(_ value: Any?, forKey key: String)
}

他的效果和setObject方法并列,但是,调用时value可以是nil

image.png

testDict.setObject(anObject: Any, forKey: NSCopying)是定义在NSMutableDictionary这个类中的方法,其中anObject不可以为nil。

其中,第二个参数如果使用String类型会报错“Argument type 'String' does not conform to expected type 'NSCopying'”。String 是一个 Struct,而 class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCoding 集成了 NSCopying 和 NSSecureCoding;所以报错时将 String 替换成 NSString 即可。

官方文档中提到,可以这样直接赋值:

可以看出这样追加元素,value也可以为nil

在处理网络请求参数时,我们经常遇到这样的情况:如果参数值为nil,就不传这个参数,如果不为nil,则正常传递这个参数。那么这时,就可以应用NSMutableDictionary上面这个特点来处理这种场景。

上一篇下一篇

猜你喜欢

热点阅读