我编写了这个协议,以便我可以创建一个结构并通过访问这个方法来转换它:
protocol JSONConvertable {
func toAnyObject() -> Dictionary<String, Any>
}
extension JSONConvertable {
func toAnyObject() -> Dictionary<String, Any> {
let mirror = Mirror(reflecting: self)
var dict = Dictionary<String, Any>()
for child in mirror.children {
dict[child.label!] = child.value
}
return dict
}
}
我在这条线路上遇到了泄漏:
dict[child.label!] = child.value
我认为它与Mirror init有关,但我想不出更好的方法。 谢谢!