ios - 将字符串转换为变量

标签 ios string swift variables

您好,我有一个 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/

相关文章:

ruby - 如何拆分字符串并跳过空格?

ios - 带顶栏的 3D Touch Peek

ios - 如何将属性添加到使用数据模型创建的核心数据类?

c# - 为什么 System.String 是引用类型而不是值类型,除了性能和可读性之外还有其他原因吗?

swift - 如何以编程方式将文本设置为 NSTextView 中的超链接? swift 4、Xcode 9.4

ios - 如何在后台更新 UILabel 计时器

ios - 代码 : Invalid redeclaration of 'ViewController'

ios - 如何在 Swift 5 中添加 ScrollView ?

ios - 从控制中心关闭蓝牙时,"CBCentralManager(delegate: self, queue: nil)"不显示蓝牙弹出消息

C++ 表达式必须具有类类型 - String 到 const char*