您好,我有一个 for in 循环,其中 elements 是要更改的变量,在本例中,“elements”是一个字符串,但 for in 循环外部有一个相应的变量,该变量与名为 elements 的字符串同名。所以我的意思是外面有一个 Var time = [some,text,words] 并且有一个 for in 循环调用一个名为“time”的字符串,我想知道如何在 for in 循环中转换字符串通过某种方式去掉“”(我知道没那么简单)而无需明确地说“时间”(变量),而是将“元素”(即字符串“时间”)字符串转换为变量。我希望我说得足够清楚,如果我说得不对,我会再试一次。
最佳答案
您不能在 Swift 中通过名称动态引用局部变量。如果可以的话,这会破坏很多编译器优化和类型安全。
如果类符合键值编码,您可以通过名称引用对象属性。例如:
class X : NSObject {
let time = ["some", "text", "words"]
func readWordsFromProp(name: String) -> String {
guard let list = self.valueForKey(name) as? [String] else {
return ""
}
var result = ""
for word in list {
result += word
}
return result
}
}
let x = X()
print(x.readWordsFromProp("time"))
一般来说,在 Swift 中有更好的方法可以使用不依赖于脆弱的名称匹配的闭包来做事。但是 KVC 可以是一个非常强大的工具
关于ios - 将字符串转换为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480663/