美文网首页
NSMutableDictionary 添加元素时,需要注意的点

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

作者: 大成小栈 | 来源:发表于2020-03-27 23:57 被阅读0次

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

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

    • KVC中对NSMutableDictionary的扩展方法
      查看testDict.setValue(value: Any?, forKey: String) 的代码提示,点进去看它的定义,可以看到它是KVC中提供的对NSMutableDictionary扩展的方法。
    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上面这个特点来处理这种场景。

    相关文章

      网友评论

          本文标题:NSMutableDictionary 添加元素时,需要注意的点

          本文链接:https://www.haomeiwen.com/subject/rvwayhtx.html