我正在编写iOS应用程序,我需要使用内置Xcode调试器的帮助。假设我有一个名为HomeViewController
的对象,它有三个属性
@property (nonatomic) BOOL finished;
@property (nonatomic, strong) NSArray *myArray;
@property (nonatomic, strong) NSString *myName;
@synthesize finished = _finished, myArray = _myArray, myName = _myName;
假设我在这个班级有一个断点。我如何查看这些属性的内容?我尝试过诸如po myName
,print myName
和print [self myName]
之类的内容,但我无法弄清楚如何做到这一点。我尝试过使用LLDB,但我一直遇到与此人遇到的错误相同的错误(lldb fails to print variable values with "error: reference to 'id' is ambiguous")。对这个问题的接受答案是,LLDB被破坏了,我应该只使用GDB;但是,我拒绝接受那些根本被打破的东西。
尽管如此,我还尝试过使用GDB和上面类似的命令;但是,我无法让GDB工作。请帮忙
答案 0 :(得分:25)
一旦你设置断点,运行,程序在断点处停止,将光标悬停在你想要看到的变量/值上:
您还可以放置NSLog(@"%@", yourLabel.text);
来查看该标签/其他对象类型的内容。
另一个选择是在控制台中运行GDB,如下所示:
gdb
attach <your process name>
然后使用po
(print-object)命令查看变量的值,如下所示:
po variableName
要查看基本类型(int
,float
,long
,double
,char
等)的值,您只需使用在控制台中运行GDB的print
命令如下:
print yourPrimitiveVariable
希望这有帮助!
编辑:
使用po
命令,您可以使用属性名称(self.myProperty
)或ivar名称(可能是_myProperty
)打印出对象的值。我在这里证明了这一点:
答案 1 :(得分:2)
尝试使用调试区域中的以下表达式来打印对象,
p self.view.bounds.size.width
或使用,
po self.view
p - 打印仅用于打印普通/简单值 而, po - Print Object与NSLog的工作原理相同,可以打印对象的值