我正在看文件,但找不到工作。我想获取类或结构中的方法或变量名。在Swift 3中,显然可以使用KeyPath。在斯威夫特4中更容易。我两个都不能去上班。
我希望字符串变量名包含“Bar”。
这是我的操场代码。

//: Playground - noun: a place where people can play

class Foo {
    public var Bar:String {
        get {
            return "xxx"
        }
    }
}

var name = \Foo.Bar
print ("Member function name \(name) should be Bar")

提前谢谢你阅读我的问题。

最佳答案

我想你想在运行时得到一个成员的名字?
显然,当您打印出密钥路径时,它不会打印成员的名称。作为替代方案,您可以使用选择器代替:

class Foo {
    // needs to be exposed to Obj-C
    @objc public var Bar:String {
        get {
            return "xxx"
        }
    }
}

var name = #selector(getter: Foo.Bar)
print ("Member function name \(name) should be Bar")

印刷品:
成员函数名栏应为Bar

关于swift - #KeyPath在Swift中获取变量或方法名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48732550/

10-14 23:16
查看更多