我有一个协议(protocol)类似的结构,
protocol Page {
func getAllProperties () -> [String: Any]
}
extension Page {
public func getAllProperties () -> [String: Any] {
var result: [String: Any] = [:]
let mirror = Mirror(reflecting: self)
print(mirror)
for (labelMaybe, valueMaybe) in mirror.children {
print(labelMaybe)
guard let label = labelMaybe else {
continue
}
result[label] = valueMaybe
}
return result
}
}
struct Test: Page {
static let aa = "aaaaa"
let bb = "bbbb"
}
这里
Test().getAllProperties()
仅返回bb
,它省略了static
属性!我也希望
getAllProperties()
也返回那些静态属性!有什么办法吗?
最佳答案
据我所知,答案是否定的。对不起。即使在Mirror
上获得type(of: self)
也不会最终有任何 child 。
关于swift - 在Swift中,是否可以从结构中获取所有** static **属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46498219/