Документация для Mirror.Child состояний,
Когда компонент метки не равен нулю, он может представлять имя хранимого свойства или активный случай перечисления. Если вы передаете строки методу потомков (::), метки используются для поиска.
Когда значение Mirror.Childlabel равно нулю?





Mirror.Child может представлять немаркированные значения, поэтому label является Optional.
Если вы создадите Mirror, отражающий тип с именованными свойствами (например, struct или class), label будет иметь ненулевое значение для каждого свойства. Однако вы можете Mirror делать вещи и с неназванными детьми, например, Array.
Когда вы Mirror и Array, элементы Array будут доступны как Mirror.Child, но их label будут 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])
Выход:
Label: nil, value: 1
Label: nil, value: 2
Label: nil, value: 3