码迷,mamicode.com
首页 > 其他好文 > 详细

Reflection和Mirror

时间:2018-02-07 19:44:22      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:--   dump   min   反射   object   struct   swift   blog   lld   

现在的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

标签:--   dump   min   反射   object   struct   swift   blog   lld   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!