Let's say I have something like this
struct A {
lazy var b: String = { return "Hello" }()
}
If I try to reflect struct A and access the value for b through its MirrorType
like so:
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)")
}
I get nil
in the console both times. Note that the underlying value type is Swift.Optional<Swift.String>
, and the variable name is somewhat confusingly b.storage
. Is there a way to access the underlying value of a lazy-loaded variable using reflection or initialize it from its MirrorType
or am I stuck waiting for someone to write a first-class reflection api for Swift?
Aucun commentaire:
Enregistrer un commentaire