如何将属性名称作为字符串获取?
class Person {
var firstName: String
var lastName: String
var downloading: Bool
func excludePropertiesFromCloud() -> [String] {
return //here I want to return ["downloading"]
}
}
如果变量名称稍后更改,我希望避免键入return ["downloading"]
以防止错误。
要获取类名,您可以使用String(describing: Person.self)
,因此我正在查看类似于属性的内容。
注意:
虽然问题的标题与Get a Swift Variable's Actual Name as String非常相似,但很明显原始问题中接受的答案会返回属性的值,并且不会回答这个直截了当的问题。原始问题是第一个出现在任何谷歌搜索上的" Swift得到属性名称",答案回答了其他问题,正如@MarqueIV指出的那样。这就是我创建这个问题的原因
答案 0 :(得分:3)
如果你可以制作你的属性@objc,你可以获得如下属性名称:
class Person {
@objc var firstName: String
var lastName: String
var downloading: Bool
func excludePropertiesFromCloud() -> [String] {
return [#keyPath(firstName)]
}
}