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 属性.
的字符串键路径
当使用 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 属性.