iOS的LLDB的P命令不打印帧变量

时间:2012-12-11 21:38:52

标签: ios xcode lldb

让我们说我想做一个

p uiTextFieldObj.frame

它会说错误:属性

'frame' not found on object of type 'UITextField *'

我有什么技巧可以这样做吗?

3 个答案:

答案 0 :(得分:26)

你可以这样做:

p (CGRect)[uiTextFieldObj frame]

从Xcode 4.5.2开始,使用点语法在lldb中打印属性似乎只适用于应用程序中定义的对象的属性,而不适用于框架类定义的属性。

答案 1 :(得分:6)

您可以通过执行[]表示法来打印它而不是。符号:

你试过这个吗?

print (CGRect)[textfieldObj frame]

如果没有(CGRect)强制转换,它很可能会显示错误,表示它不知道返回类型。您也可以这样做:

po textfieldObj

将显示有关文本字段的框架和其他一些信息。 po debug命令将调用objects -description方法,您可以覆盖该方法以提供您喜欢的任何信息。

答案 2 :(得分:3)

请参阅An @import-ant Change in Xcode

  

LLDB的Objective-C解析器现在可以通过任何模块使用   您的应用程序并确定用于所有功能和方法的类型   定义

e @import UIKit;
po uiTextFieldObj.frame
相关问题