Swift使用String作为字典键

时间:2014-12-02 08:09:22

标签: swift ios8

我不知道是否可行但是......我有这个代码

var dic = Dictionary<String, String>()
var string = [button1, button2, button3]

@IBAction func Button(sender: AnyObject){
dic["\(string)"] = "0"
}

我的dic中的结果是

[button1, button2, button3]:0 

但我想要这个:

[button1:0, button2:0, button3:0]

我该怎么办?

2 个答案:

答案 0 :(得分:0)

来自apple swift dpcs示例DOC

var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]

这绝对是访问:

var key = "DUB"
var val = airports[key]
var val2 = airports["DUB"]

意味着你只需要直接使用stink来访问一个值: - )

答案 1 :(得分:0)

您的代码示例没有显示button1/2/3类型,但假设它们是Strings(而不是按钮),您可以使用循环创建所需的字典:

var button1 = "button1"
var button2 = "button2"
var button3 = "button3"

var strings = [button1, button2, button3]
var dictionary = Dictionary<String, String>()

@IBAction func Button(sender: AnyObject) {
    for key in strings {
        dictionary[key] = "0"
    }
}

注意,您应该使用更多描述性变量名称。 button不是String的好名字,string不是Strings数组的好名字。该名称应该给你一个关于类型的提示,并且绝对不暗示它是另一种类型。同样的事情适用于函数名称。 Button听起来像是一个对象,而不是一个动作,但是一个函数做了某些事情,所以你希望它有一个名称,作为一个提示,例如buttonTapped