计划使用字符串值来引用我要更新的变量。组合来自几个不同用户选择来源的字符串。有很多使用if / case语句的可能性。提前致谢
var d1000: Int = 0 // ... var d1289: Int = 0 // ... var d1999: Int = 0 var deviceIDtype: Character = "d" // button press assigns some value, d used for example var deviceIDsection: String = "12" // button press assigns some value, 12 used for example var deviceID: String = "89" // button press assigns some value, 89 used for example var ref:String = "" func devName(dIDt:Character, dIDs: String, dID: String) -> String { var combine: String = String(dIDt) + (dIDs) + (dID) return (combine) } ref = devName(deviceIDtype, dIDs: deviceIDsection, dID: deviceID) // ref equals d1289 in this example // d1289 = 1234 // trying to set this using the ref variable value, failed attempts below /(ref) = 1234 // set d1289 variable to equal "1234" "/(ref)" = 1234 // set d1289 variable to equal "1234" get(ref) = 1234 // set d1289 variable to equal "1234" get.ref = 1234 // set d1289 variable to equal "1234"
如何使用字典[String : Int]?
[String : Int]
这将使您实现所需的功能-存储不同键的值。
例如,代替使用
var d1000 = 0 var d1289 = 0 var d1999 = 0
你可以用
var dictionary: [String : Int] = [ "d1000" : 0, "d1289" : 0, "d1999" : 0 ]
要将值存储在字典中,只需使用
dictionary[key] = value //for example, setting "d1289" to 1234 dictionary["d1289"] = 1234
并从字典中获取值,请使用
let value = dictionary[key] //for example, getting the value of "d1289" let value = dictionary["d1289"]
所以,你可以使用这样的东西
//initialize your dictionary var myDictionary: [String : Int] = [:] //your key initialization data var deviceIDtype: Character = "d" var deviceIDsection: String = "12" var deviceID: String = "89" var ref: String = "" //your code func devName(/*...*/){/*...*/} ref = devName(/*...*/) //set the key ref (fetched from devName) to 1234 myDictionary[ref] = 1234
顺便提一句,您可以真正清理一些代码
func devName(type: Character, section: String, id: String) -> String{ return String(type) + section + id } //... let key = devName(deviceIDtype, section: deviceIDsection, id: deviceID) let value = 1234 myDictionary[key] = value