Swift 4 静态获取模型属性 名称的值

Swift 4 statically get value of model property name

当使用 Swift 3 时,我是这样定义我的模型的

class Model: NSObject {
    var prop1: String
} 

当我想访问 属性 名称 prop1 的静态字符串值时,我会使用 let sad = #keyPath(Model.prop1),它会给我打印出 "prop1"。快乐的日子。

问题是,自升级到 Swift 4 后,我在执行上述操作时遇到了问题。我在其他帖子中看到我们可以使用新的 \Model.prop1 语法,但这似乎提供了 属性 的值,而不是名称的字符串表示形式。

我也在重构我的 Swift 模型上对 NSObject 的需求,但我原以为我仍然可以获得此功能。

如有任何帮助,我们将不胜感激!

Swift 属性不一定在运行时保留 属性 名称的字符串。因此,如果 Swift 键路径语法能够为您提供此字符串值,则它只能用于 NSObject 派生的 类。但是,Swift 键路径语法不仅适用于那些;它也可以用来指代非 @objc 类 和结构的属性。因此,这是不可能的。 #keyPath 语法仍然可用,但是,可以获取 Objective-C 属性.

的字符串键路径