此問題是由調試器打印分配給枚舉的關聯值造成的。有自定義描述時可以阻止這種情況嗎?對於這個微不足道的例子來說,這不是什麼大不了的事情,但是如果你有字典或者其他大型對象,它可能真的會污染po
輸出。如何覆蓋lldb po命令打印的內容,用於快速枚舉?
我有一個簡單的快速枚舉。我試圖覆蓋在調試器中執行po
命令時所打印的內容。但是,lldb正在打印對象的description
,然後是該枚舉的轉儲。例如,假設下面的代碼:
enum TestEnum : CustomStringConvertible {
case Value1(test:Int)
var description: String {
return "Test Enum"
}
}
當我嘗試打印類型TestEnum的對象,或者當它嵌套在被帶來打印另一個對象,我得到這個類型的輸出:
(lldb) po testEnum
▿ Test Enum
- Value1 : 1000
我只想要我的說明在對象顯示在調試器中時打印。我也試過通過debugDescription
這樣做,結果相同。
我不確定你在說什麼?在調試器中,我要求「po response.value!」這是可選的類型。在另一個例子中,我也嘗試覆蓋debugDescription,但得到了相同的結果。據我所知,lldb正在打印自定義描述,然後繼續爲枚舉進行內部默認打印。 –
是的,謝謝你指出。我決定取消前面的例子並粘貼一個簡單的例子。這幫助我確定它在做什麼。它將打印與枚舉關聯的每個指定值的值。這是我想要嘗試和預防的。 –
好的,謝謝你。沒有依賴關係的簡化示例構成了一個MCVE,並給了我一些東西來吸引我的注意力。 :) – matt