我对如何使用LLDB检查快速项目中的对象有点愚蠢。在这种特殊情况下,我使用NSJSONSerializer来序列化一小块JSON,我想检查一下这个值。在Xcode 5.1中,这非常简单,只需输入" po json"在lldb提示符下,我得到了我想要的东西。现在命令po和print通过打印出大部分垃圾来使我失败。我甚至尝试调用description属性,因为它适用于一些快速类型,但仍然无法工作。作为最后的手段,我使用了一个带有println语句的表达式,最后它起作用了。当然必须有一个更简单的方法吗?这是LLDB的输出:
(lldb) print json
(AnyObject?) $R4 = (instance_type = Builtin.RawPointer = 0x00007ff05c0c49d0 -> 0x0000000107ef32c8 (void *)0x0000000107ef32f0: __NSCFDictionary)
(lldb) po json
(instance_type = Builtin.RawPointer = 0x00007ff05c0c49d0 -> 0x0000000107ef32c8 (void *)0x0000000107ef32f0: __NSCFDictionary)
{
instance_type = 0x00007ff05c0c49d0 -> 0x0000000107ef32c8 (void *)0x0000000107ef32f0: __NSCFDictionary
}
(lldb) print json.description?
error: <EXPR>:1:1: error: 'Optional<AnyObject>' does not have a member named 'description'
json.description?
^ ~~~~~~~~~~~
(lldb) po json.description?
error: <EXPR>:1:1: error: 'Optional<AnyObject>' does not have a member named 'description'
json.description?
^ ~~~~~~~~~~~
(lldb) expression
Enter expressions, then terminate with an empty line to evaluate:
1 println(json)
2
Optional({
errors = {
"authorizations.provider_user_id" = (
"has already been taken"
);
};
})
(lldb)
答案 0 :(得分:0)
你可以尝试
(lldb)expr -O -d run - json!
&#34; po&#34;与ObjC中的方式完全不同,这是一个已知的限制。明确展开可选项,并允许对展开值进行动态类型解析