Swift 2.0对元类型的反思

时间:2015-09-27 08:08:10

标签: ios reflection swift2

Swift反射在特定类型的实例上运行得很好,但是如果我想打印出特定类的所有实例变量呢?

创建Mirror适用于实例:

Mirror(reflecting: self).children.filter { $0.label != nil }.map { return $0.label! }

但是当self是类BirdFruit的类时,返回的列表为空。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,当我创建镜像时,我自己的自定义类没有返回任何子项。请按this answer中的建议使用superclassMirror()。是什么解决了我的问题...

例如:

let myMirror = Mirror(reflecting: self).superclassMirror()
myMirror.children.filter { $0.label != nil }.map { return $0.label! }