Swift 中有没有一种简单的方法来迭代类的属性?
即我有一个 Person 类,它有 3 个属性:姓名、姓氏、年龄。
有没有类似的东西
for attribute in Person {
println("\(attribute): \(attribute.value)")
}
输出例如:
name: Bob
lastname: Max
age: 20
他们已经删除了 Swift 2.0 中的反射。这就是我枚举属性和值的方式。
class People {
var name = ""
var last_name = ""
var age = 0
}
var user = People()
user.name = "user name"
user.last_name = "user lastname"
user.age = 20
let mirrored_object = Mirror(reflecting: user)
// Swift 2
for (index, attr) in mirrored_object.children.enumerate() {
if let property_name = attr.label as String! {
print("Attr \(index): \(property_name) = \(attr.value)")
}
}
// Swift 3 and later
for (index, attr) in mirrored_object.children.enumerated() {
if let property_name = attr.label as String! {
print("Attr \(index): \(property_name) = \(attr.value)")
}
}
Output:
属性 0:名称 = 用户名
属性 1:last_name = 用户姓氏
属性 2:年龄 = 20
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)