【发布时间】:2012-12-10 02:01:52
【问题描述】:
我正在尝试使用 lldb 调试我的 iOS 应用程序,但在调试时遇到了非常奇怪的错误。
断点前几行,我得到了:
CGRect frame = view.frame;
我可以在 lldb 中使用 print frame 命令毫无问题地访问它。但是,当我尝试在 lldb 中再次访问该框架时,我输入 print view.frame 并收到以下错误:
error: property 'frame' not found on object of type 'UIView *'
这没有任何意义,因为我可以验证 view 是一个 UIView* 实例,并且通过键入 po view 并获得正确的结果,它有一个名为 frame 的有效属性:
(UIView *) $4 = 0x1e199bf0 <MyAppCustomView: 0x1e199bf0; frame = (3398 3396; 204 208); layer = <CALayer: 0x1e199ce0>>
这个特殊的 lldb 错误发生在我身上很多,我找不到这个错误的原因。有人在Property 'count' not found on object of type 'NSMutableArray *' PO command in lldb 建议可以将gdb 用作(gdb) p view.frame,但我得到error: '(gdb)' is not a valid command.,我高度怀疑gdb 命令会“工作吗?”无论如何,在另一个调试器中。
对于这个随机出现的错误有什么建议或解决方法吗?
【问题讨论】:
-
已经尝试过:错误:没有已知的方法'-frame';将消息发送到方法的返回类型
-
打印 [(UIView*)view frame] 也不起作用
-
打印(CGRect)[视图框架]
-
有时我也会遇到这种情况。在这种情况下,我只是使用 NSLog() 或将其分配给我将使用 lldb 打印的临时对象/结构。
-
@RamyAlZuhouri 这是一种解决方法,但是在您调试并且需要某个变量的值并且您没有对其进行 nslogged 时,它不是很方便。
标签: objective-c ios6 xcode4.5 lldb