当我在Swift的字典中使用print()
时,它在控制台中显示出漂亮而美丽的效果,并带有一个键和一个值。更漂亮的调试输出打印Xcode中的Swift Dictionary
object = Optional({
customerId = 111;
transactionId = 333;
extraId = 444;
})
当我在同样的字典运行po
,它吐出了这么多废话转储这是令人难以置信的难读。
▿ Optional<Any>
▿ some : 3 elements
▿ 0 : 2 elements
▿ .0 : transactionId
- .1 : 333
▿ 1 : 2 elements
▿ .0 : customerId
- .1 : 111
▿ 2 : 2 elements
▿ .0 : extraId
- .1 : 444
只需使用p
更是雪上加霜
(Any?) $R8 = some {
payload_data_0 = 0x0000000170e679c0 {
Swift._SwiftNativeNSDictionary = {}
_heapBufferBridged_DoNotUse = 0x0000000170e679d0 {}
nativeStorage = {
buffer = 0x00000001703e4300 {
Swift.ManagedBuffer = {}
}
initializedEntries = (values = 0x00000001703e4328, bitCount = 4)
keys = 0x00000001703e4330
values = 0x00000001703e4390
}
}
payload_data_1 = 0x0000000000000000
payload_data_2 = 0x0000000000000000
instance_type = 0x0000000105ffc3f8
}
我可以在控制台看到的方式,其实我可以不必经过了这么多废话来筛选阅读我的变数呢?
PS - 在这种情况下,我正在打印Optional<Any>
碰巧是字典的对象,但它与非可选字典相同。
在调试器中打印什么'p object!'? –
你应该看看LLDB数据格式化程序。我没有这样做,但是这里是WWDC 2014的[高级Swift调试在LLDB](https://developer.apple.com/videos/play/wwdc2014/410/)。数据格式化程序是围绕着34分钟。 –