【发布时间】:2016-02-29 01:58:13
【问题描述】:
此问题是由调试器打印分配给枚举的关联值引起的。当您有自定义描述时,有没有办法防止这种情况发生?对于这个微不足道的例子来说,这没什么大不了的,但是如果您有字典或其他大型对象,它确实会污染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
我只想在调试器中显示对象时打印 my 描述。我也尝试通过debugDescription 执行此操作,结果相同。
【问题讨论】:
-
我不确定你在说什么?在调试器中,我要求“po response.value!”它的类型是 optional
。在另一个示例中,我也尝试覆盖 debugDescription,但得到了相同的结果。据我所知,lldb 正在打印自定义描述,然后仍在为枚举进行内部默认打印。 -
是的,感谢您指出这一点。我决定放弃前面的示例并粘贴在一个简化的示例中。这帮助我确定了它在做什么。它正在打印与枚举关联的每个分配值的值。这就是我想要尝试和防止的。
-
好的,谢谢。没有依赖关系的简化示例构成了一个 MCVE,并给了我一些让我沉迷其中的东西。 :)