我正在尝试调试iOS应用,我在模拟器中遇到lldb问题。调用类方法似乎不起作用。实例方法工作正常。
(lldb) po Category
<no result>
(lldb) po [Category class]
error: Couldn't prepare the expression for execution in the target
(lldb) po self
(TagsTableViewController *) $5 = 0x085585a0 <TagsTableViewController: 0x85585a0>
我已经尝试过4.3和5.1模拟器,但两者都表现出相同的问题。
在设备上进行调试时,一切正常。
答案 0 :(得分:19)
这很有效。感谢@devioustree在上面的评论中回答。
基本命令的结构如下:
po [(Class)objc_getClass("ClassName") class]
调用someClassMethodHere
:
po [[(Class)objc_getClass("ClassName") class] someClassMethodHere]
答案 1 :(得分:0)
添加此项以扩展已接受的答案......
如果您尝试为lldb中的变量分配一个新值,就像我一样,而不是仅打印出值,那么就这样做......
expr self.myArray = (NSArray*)[[(Class)objc_getClass("NSArray") class] arrayWithObjects:@"valueOne",@"valueTwo",@"etc",nil]