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()
的類的更多資訊,因此它在除錯類本身時更有用。