print() vs dump()
我们中的许多人都开始使用简单的 print() 进行调试。假设我们有这样一个类:
class Abc {
let a = "aa"
let b = "bb"
}
我们有一个 Abc 的实例如下:
let abc = Abc()
当我们在变量上运行 print() 时,输出为
App.Abc
而 dump() 输出
App.Abc #0
- a: "aa"
- b: "bb"
如图所示,dump() 输出整个类层次结构,而 print() 只输出类名。
因此,dump() 对 UI 调试特别有用
let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
通过 dump(view),我们得到:
- <UIView: 0x108a0cde0; frame = (0 0; 100 100); layer = <CALayer: 0x159340cb0>> #0
- super: UIResponder
- NSObject
虽然 print(view) 我们得到:
<UIView: 0x108a0cde0; frame = (0 0; 100 100); layer = <CALayer: 0x159340cb0>>
有关 dump() 的类的更多信息,因此它在调试类本身时更有用。