用 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