Ili*_*rim 0 reflection mirror swift
各州的文件Mirror.Child,
当标签组件不为零时,它可能表示存储属性或活动枚举案例的名称。如果将字符串传递给descendant( : :) 方法,则使用标签进行查找。
什么时候Mirror.Child label值为零?
Mirror.Child可以表示未标记的值,因此label是Optional。
如果您创建一个Mirror反映具有命名属性(例如 astruct或class)的类型,label则每个属性都会有一个非零值。但是,您Mirror也可以使用未命名的子项,例如Array.
当您Mirror使用 an时Array, the 的元素Array将可访问为Mirror.Child,但它们的labels 将是nil。
func mirrorChildren<T>(of object: T) {
for child in Mirror(reflecting: object).children {
print("Label: \(child.label ?? "nil"), value: \(child.value)")
}
}
mirrorChildren(of: [1,2,3])
Run Code Online (Sandbox Code Playgroud)
输出:
Label: nil, value: 1
Label: nil, value: 2
Label: nil, value: 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
425 次 |
| 最近记录: |