是否有可能找到变量名称,我称之为变量名称,而变量有值?
我的意思是:
var varName: Int
...
if ((varName == "varName") && (varName == 6)) {
...
}
这可能吗?
答案 0 :(得分:4)
在Reflection
示例
Swift
struct Car {
let type: CarType
let name: String
init(_ type: CarType, name: String) {
self.type = type
self.name = name
}
}
enum CarType {
case Sport
case Economics
}
let bmw = Car(CarType.Sport, name: "BMW")
let bmwMirror = Mirror(reflecting: bmw)
let children = bmwMirror.children
print("car properties: \(children.count)") //2
var generator = children.generate()
let type = generator.next()
print(type!.label) // type Optional
print(type!.value) //Sport
let name = generator.next()
print(name!.label) // name Optional
print(name!.value) //BMW
注意:我在Swift 1.2中使用Swift 2.0 Xcode beta 7使用let bmwMirror = reflect(bmw)
并且您可以访问属性bmwMirror.[indexOfProperty].1(.value or label)
答案 1 :(得分:0)
为什么需要检查变量名?也许更好地使用字典?
如果你从字符串创建变量名,然后检查它是否正确名称,也许最好检查原始字符串?