首页 > 其他 > 详细

Reflection和Mirror

时间:2018-02-07 18:46:12      阅读:206      评论:0      收藏:0      [点我收藏+]

现在的Swift虽然在反射方面相比Objective-C要弱得多,但还是存在一些和反射相关的内容的。 可以通过一个Mirror来获取某元素的一些信息,比如对象的所有属性。

struct Persons {
    let name: String
    let age: Int
}

let xiaomings = Persons(name: "xiaomings", age: 20)
let r = Mirror(reflecting: xiaomings)
print("xiaomings是\(r.displayStyle!)")
print("属性个数:\(r.children.count)")
for child in r.children {
    print("属性名:\(child.label!)----值:\(child.value)")
}

打印结果:

xiaomings是struct
属性个数:2
属性名:name----值:xiaomings
属性名:age----值:20

也可以用dump打印其镜像信息:

dump(xiaomings)

? __lldb_expr_63.Persons
  - name: "xiaomings"
  - age: 20

 

Reflection和Mirror

原文:https://www.cnblogs.com/muzijie/p/8427213.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!