美文网首页
iOS swift-字典

iOS swift-字典

作者: 青菜白玉堂 | 来源:发表于2017-07-06 18:04 被阅读113次

    Swift中的字典类型是Dictionary,泛型集合。var修饰是可变字典,let修饰时可变字典 

    声明字典类型:

    var dict1: Dictionaryvar dict2: [Int: String]  

    初始化:必须进行初始化才能使用

    var dict1: Dictionary= Dictionary() 

    // 定义一个可变字典

    var dict3 : [String : NSObject] = [String : NSObject]()

    // 定义字典的同时进行初始化

    let dict4 = ["name" : "xiaosan", "age" : 18] 

    // 类型推导出 [String : NSObject] 类型

    // swift中任意对象,通常不使用NSObject,使用AnyObjectvar 

    dict5 : Dictionarydict5 = ["name" : "dd", "age" : 18]

    字典的基本操作

    // 字典的操作

    var dict : [String : AnyObject] = [String : AnyObject]()

    dict = ["age" : 18, "height" : 1.74, "name" : "xiaocan"]

    // 添加数据

    dict["weight"] = 60.0

    // 删除数据

    dict.removeValueForKey("age")

    // 修改字典

    dict["name"] = "xiaoer"

    dict["age"] = 18  // 如果没有这个键,则为添加数据

    // 查询

    dict["name"]

    字典的遍历

    // 遍历字典中所有的值

    for value in dict.values {

    print(value)

    }

    // 遍历字典中所有的键

    for key in dict.keys {

    print(key)

    }

    // 遍历所有的键值对

    for (key, value) in dict {

    print(key)

    print(value)

    }

    字典的合并

    var myDict1 = ["name" : "xiaosan", "age" : 20]

    var myDict2 = ["height" : 1.77, "address" : "taikang"]

    // 字典不可以相加合并    另外类型不同也不能合并

    for (key, value) in myDict1 {

    myDict2[key] = value

    }

    removeValueForKey && updateValue(forKey:)

    字典的updateValue(forKey:) 方法去设置或者更新一个特定键的值,如果键不存在则会设置它的值,如果键存在则会更新它的值, 和下标不一样是, updateValue(forKey:) 方法如果更新时,会返回原来旧的值rThis enables you to 可以使用这个来判断是否发生了更新。

    var dict = ["name" : "siri", "age" : 18, "address" : "nanjing"]

    iflet oldValue = dict.updateValue("Siri", forKey: "name") {

    print(oldValue)  // siri

    }

    //使用下标语法把他的值分配为nil,来移除这个键值对。

    dict["age"] = nil

    print(dict)  // ["address": nanjing, "name": Siri]

    使用removeValueForKey方法,如果存在键所对应的值,则移除一个键值对,并返回被移除的值,否则返回nil。

    if let removedValue = dict.removeValueForKey("address") {

    print("The remove dict's adddress is \(removedValue)") // The remove dict's adddress is nanjing

    } else {

    print("The dict does not contain a value for address")

    }

    参考:http://www.cnblogs.com/10-19-92/p/5627619.html

    相关文章

      网友评论

          本文标题:iOS swift-字典

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