15

我正在尝试调试 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 模拟器,但都出现了同样的问题。

在设备上调试时一切正常。

4

2 回答 2

18

这行得通。感谢@devioustree 在上面的评论中回答。

基本命令的结构如下:

po [(Class)objc_getClass("ClassName") class]

调用someClassMethodHere

po [[(Class)objc_getClass("ClassName") class] someClassMethodHere]
于 2012-06-12T20:12:37.707 回答
0

添加此内容以扩展已接受的答案...

如果您尝试像我一样为 lldb 中的变量分配一个新值,而不是仅仅打印出该值,那么请执行以下操作...

expr self.myArray = (NSArray*)[[(Class)objc_getClass("NSArray") class] arrayWithObjects:@"valueOne",@"valueTwo",@"etc",nil]
于 2015-12-01T20:08:41.133 回答