【发布时间】:2014-06-22 06:50:44
【问题描述】:
我注意到没有在 Swift 全局定义中任何地方定义的属性,例如 Any.Type 中的 dynamicType 和 Type。如何找出可以访问但未记录的属性?有没有办法在 Swift 中进行自省?
【问题讨论】:
标签: swift introspection
我注意到没有在 Swift 全局定义中任何地方定义的属性,例如 Any.Type 中的 dynamicType 和 Type。如何找出可以访问但未记录的属性?有没有办法在 Swift 中进行自省?
【问题讨论】:
标签: swift introspection
此时 Swift 已只读反射。它还不是很好,但这里有一个可用的示例:
struct Bookmark {
let title: String, url: String
}
let bookmark = Bookmark(title: "Stack Overflow", url: "http://stackoverflow.com")
var mirror = reflect(bookmark)
for var propertyNumber = 0; propertyNumber < mirror.count; ++propertyNumber {
let (propertyName, propertyMirror) = mirror[propertyNumber]
println("\(propertyName) = \(propertyMirror.summary), \(propertyMirror.count) children")
}
【讨论】: