【发布时间】:2014-06-10 23:03:34
【问题描述】:
简单的问题 - 使用 Swift 时如何在 Xcode 的监视窗口中查看变量的值?
这是一个例子,看看 mdn 的值是 2067134273 ,但它无法在监视窗口中查看(ObjectiveC.NSObject 不会扩展为任何内容)。
我认为这可能是因为它是一个可选的,但它并不是那么简单,因为查看显示为“可选 NSString”的 onss 的显示,它可以查看它并且它是一个 NSString?,而nss 是一个非可选的 NSString 没有显示它的值。
这是他们的声明:
var nss:NSString = "NSString"
var ss = "Swift string"
var onss:NSString? = "Optional NSString"
那么在Xcode调试的时候如何查看mdn和nss的值,最好不用控制台自动显示呢?
【问题讨论】:
-
试试
expr -l objc -- mdn -
控制台不喜欢这样,它说 mdn 是一个未声明的标识符(虽然 po mdn 可以,但不显示它的内容)。无论如何,Swift 向前迈进了一步,但必须输入才能显示其值是 IMO 的倒退。
-
我说这是 lldb 中的一个错误,打印
NSString并不明智。也可以试试expr -l objc -- (id)(0x POINTER_VALUE) -
"expr -l objc -- (id) (0x00000001702261c0)"(其中 0x00000001702261c0 是监视窗口中显示的 mdn 的值)显示“(id) $0 = 0x00000001702261c0”。 "expr -l objc -- (id)(0x mdn)" 表示后缀 x 无效。
-
想一想
if mdn!.lenght >= 10 { ... }这一行,如果mdn无法解包,这将导致直接崩溃。