如果我这样做:
class MyObject {
var name = "Something"
}
var myObject = MyObject()
然后在运行时的控制台po myObject
,我得到了这个:
0x00007fe1596ef890
(name = "Something")
换句话说,它会打印出对象中每个属性的属性值。
我想使用println复制此行为,但正在执行println(myObject)
只是给了我:
MyApp.MyObject
如何才能打印出属性值,就像我使用po
命令一样。
答案 0 :(得分:2)
如果您使类符合Printable
协议,则将打印description
计算属性而不是类型名称:
class MyObject: Printable {
var name = "Something"
var description: String {
return "MyObject(name = \(self.name))"
}
}
let myObject = MyObject()
println(myObject)
// MyObject(name = Something)
或者,您可以使用dump()
而不是println()
来使用Swift的反射工具转储对象的属性:
dump(myObject)
// ▿ __lldb_expr_920.MyObject #0
// - name: Something