用println()打印`po`对象描述?

时间:2015-03-16 17:45:07

标签: ios xcode swift console

如果我这样做:

class MyObject {
    var name = "Something"
}

var myObject = MyObject()

然后在运行时的控制台po myObject,我得到了这个:

0x00007fe1596ef890
 (name = "Something")

换句话说,它会打印出对象中每个属性的属性值。

我想使用println复制此行为,但正在执行println(myObject)只是给了我:

  

MyApp.MyObject

如何才能打印出属性值,就像我使用po命令一样。

1 个答案:

答案 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