0
比方说,我有这样的事情延迟加载MirrorType
struct A {
lazy var b: String = { return "Hello" }()
}
如果我试图反映结构A和通过其MirrorType
为b来访问值,像这样:
var a = A()
var r = reflect(a)
for i in 0..r.count {
let (n, m) = r[i]
println("\(m.value)")
var c = a.b
println("\(m.value)")
}
我得到nil
在控制台两次。请注意,基础值类型是Swift.Optional<Swift.String>
,而变量名称有点令人困惑b.storage
。有没有办法使用反射来访问延迟加载的变量的基础值,或者从MirrorType
初始化它,或者我坚持等待某人为Swift编写一流的反射API?