Class 列出所有类属性swift3
我试图打印从类继承的对象的所有值,以下是我的示例: 我创建了一个类:Class 列出所有类属性swift3,class,foreach,attributes,swift3,Class,Foreach,Attributes,Swift3,我试图打印从类继承的对象的所有值,以下是我的示例: 我创建了一个类: class Pokemon { var name: String? var type: String? var level: Int? var exp = 0.0 } 创建对象并指定一些值: var pikachu = Pokemon() pikachu.name = "Pika Pika" pikachu.level = 1 pikachu.type = "electricity" pikachu.exp =
class Pokemon {
var name: String?
var type: String?
var level: Int?
var exp = 0.0
}
创建对象并指定一些值:
var pikachu = Pokemon()
pikachu.name = "Pika Pika"
pikachu.level = 1
pikachu.type = "electricity"
pikachu.exp = 0
现在,我想遍历所有pikachu对象属性并打印值。我在为每个循环考虑,但我不确定如何实现它
我知道我可以做这样的事情:
func printStats(pokemon: Pokemon) {
if pokemon.name != nil {
print(" name: \(pokemon.name!)\n level:\(pokemon.level!)\n type:\(pokemon.type!)\n exp: \(pokemon.exp!)")
}
}
printStats(pokemon: pikachu)
输出:
name: Pika Pika
level:1
type:electricity
exp: 0.0
但我只想遍历所有值,而不是显式地写入函数中的每个属性 看起来像是 或者,您可以使用字典存储
Any?
类型的属性
e、 g
我找到了这样做的方法:
let pokeMirror = Mirror(reflecting: pikachu)
let properties = pokeMirror.children
for property in properties {
print("\(property.label!) = \(property.value)")
}
输出:
name = Optional("Pika Pika")
type = Optional("electricity")
level = Optional(1)
exp = Optional(0.0)
如果要删除“可选”属性,只需初始化属性。- 使用
获取实例的属性镜像API
- 如果您正在使用NSObject开发iOS应用程序,则可能需要覆盖。然后可以使用
打印实例print
classyourclass:NSObject{
公共重写变量说明:字符串{
变量des:String=“\(类型(of:self)):”
镜子里的孩子(反射:自我)。孩子们{
如果让propName=child.label{
des+=“\(propName):\(child.value)\n”
}
}
返回des
}
}
让instance=YourClass()
打印(实例)
在中查看更多信息
name = Optional("Pika Pika")
type = Optional("electricity")
level = Optional(1)
exp = Optional(0.0)