加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在Swift中结合两个NSDictionary

发布时间:2020-12-14 04:33:19 所属栏目:百科 来源:网络整理
导读:我是一个快速的初学者,我试图理解字典的概念. 我有两个NSDictionary,它们都包含相同的键,如下所示: var currencyname: NSDictionary = [ "CNY": "Chinese Yuan","PLN": "Polish Zloty"]var rawrates NSDictionary = [ "CNY": "1.34","PLN": "1.456"] 我试图
我是一个快速的初学者,我试图理解字典的概念.

我有两个NSDictionary,它们都包含相同的键,如下所示:

var currencyname: NSDictionary = [
        "CNY": "Chinese Yuan","PLN": "Polish Zloty"
]

var rawrates NSDictionary = [
        "CNY": "1.34","PLN": "1.456"
]

我试图将它们组合起来,这样我只得到一个字典,例如:

["CNY": "Chinese Yuan","1.34"]
        ["PLN": "Polish Zloty","1.456"]

我想我的第一个问题是我应该输出什么类型的变量?我可以使用NSDictionary吗?通过阅读文档,我的理解是NSDictionaries通过成对的键/值来工作.是否可以在字典中放入两个值?

我的第二个问题是我应该如何组合这两个字典,我试图使用下面的代码而没有太大的成功

for (currency,rawrate) in rawrates {
                for (currencyid,name) in currencyname{
                    if currency == currencyid {
                        rawrates.append(name as String)
                    }
                } 
}

解决方法

您可以创建元组字典,如下所示:

let currencyname:[String:String] = ["CNY": "Chinese Yuan","PLN": "Polish Zloty"]
let rawrates:[String:String] = ["CNY": "1.34","PLN": "1.456"]

var combinedDictionary:[String:(name:String,rate:String)] = [:]


for key in currencyname.keys.array {
    combinedDictionary[key] = (currencyname[key]!,rawrates[key]!)
}


// Testing

combinedDictionary["PLN"]!       // (.0 "Polish Zloty",.1 "1.456")
combinedDictionary["PLN"]!.name  // "Polish Zloty"
combinedDictionary["PLN"]!.rate  // "1.456"

combinedDictionary["CNY"]!       // (.0 "Chinese Yuan",.1 "1.34")
combinedDictionary["CNY"]!.name  // "Chinese Yuan"
combinedDictionary["CNY"]!.rate  // "1.34"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读