我不知道是否可行但是......我有这个代码
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]
我该怎么办?
答案 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
。