Swift反射在特定类型的实例上运行得很好,但是如果我想打印出特定类的所有实例变量呢?
创建Mirror
适用于实例:
Mirror(reflecting: self).children.filter { $0.label != nil }.map { return $0.label! }
但是当self是类Bird
或Fruit
的类时,返回的列表为空。
答案 0 :(得分:0)
我遇到了类似的问题,当我创建镜像时,我自己的自定义类没有返回任何子项。请按this answer中的建议使用superclassMirror()
。是什么解决了我的问题...
例如:
let myMirror = Mirror(reflecting: self).superclassMirror()
myMirror.children.filter { $0.label != nil }.map { return $0.label! }