用 println() 打印 `po` 对象描述?
Print `po` object description with println()?
如果我要这样做:
class MyObject {
var name = "Something"
}
var myObject = MyObject()
然后在运行时的控制台中,po myObject
,我得到这个:
0x00007fe1596ef890
(name = "Something")
换句话说,它打印出对象中每个 属性 的 属性 值。
我想使用 println 复制此行为,但是 println(myObject)
只会给我:
MyApp.MyObject
我怎样才能让它打印出 属性 值,如果我使用 po
命令,它会是一样的。
如果您使 class 符合 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
如果我要这样做:
class MyObject {
var name = "Something"
}
var myObject = MyObject()
然后在运行时的控制台中,po myObject
,我得到这个:
0x00007fe1596ef890
(name = "Something")
换句话说,它打印出对象中每个 属性 的 属性 值。
我想使用 println 复制此行为,但是 println(myObject)
只会给我:
MyApp.MyObject
我怎样才能让它打印出 属性 值,如果我使用 po
命令,它会是一样的。
如果您使 class 符合 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