如果我要这样做:
class MyObject {
var name = "Something"
}
var myObject = MyObject()
然后在运行时的控制台中po myObject
,我得到了:
0x00007fe1596ef890
(name = "Something")
换句话说,它打印出对象中每个属性的属性值。
我想使用println复制此行为,但这样做println(myObject)
却给了我:
MyApp.MyObject
我如何获得它来打印出属性值,就像使用该po
命令一样。
如果使您的类符合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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句