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()
的类的更多信息,因此它在调试类本身时更有用。