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?