如何将String转换为Struct(在Swift中)

时间:2017-08-23 00:53:22

标签: swift

我有一个struct喜欢,

struct LoginConstants {
  struct Selectors {
    let testa = "test1234"
  }
}

和类一样,

class Login: XCTestCase {
  override class func setUp () {
    // below constant will have a value like "LoginConstants"
    let localConstants = "\(String(describing: self))Constants"

  }
}

...所以这里我在localConstants中有一个结构名称作为字符串格式。

我的问题是如何从LoginConstants字符串访问localConstants属性?

注意: 我知道我可以直接访问LoginConstants()。 但是我打算创建一个父类,我可以动态地访问这个***Constants结构。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Objective-C有能力做到这一点,但Swift没有。如果通过@objc属性为类提供Objective-C名称,则可以使用Objective-C运行时函数按名称访问它。但是,结构不可能实现这一点。

反正可能不是最好的方式。更好的解决方案是重新考虑您要执行的操作,并直接访问结构类型而不是名称。