如何使用Xcode调试器打印属性的内容?

Nos*_*tap 12 xcode gdb ios lldb

我正在编写一个iOS应用程序,我需要使用内置Xcode调试器的帮助.假设我有一个名为的对象HomeViewController有三个属性

@property (nonatomic) BOOL finished;
@property (nonatomic, strong) NSArray *myArray;
@property (nonatomic, strong) NSString *myName;

@synthesize finished = _finished, myArray = _myArray, myName = _myName;
Run Code Online (Sandbox Code Playgroud)

假设我在这个班级有一个断点.我如何查看这些属性的内容?我试过的东西,如po myName,print myNameprint [self myName],但我无法弄清楚如何做到这一点.我已经尝试过使用LLDB,但是我一直遇到这个人遇到的错误(lldb无法打印变量值,"错误:引用'id'是不明确的").对这个问题的接受答案是,LLDB被破坏了,我应该只使用GDB; 但是,我拒绝接受那些根本被打破的东西.

不过,我也尝试过使用GDB和上面类似的命令; 但是,我无法让GDB工作.请帮忙

pas*_*aya 25

一旦放置断点,运行,程序在断点处停止,将光标悬停在您想要看到的变量/值上,如下所示:

在此输入图像描述

您还可以放置一个NSLog(@"%@", yourLabel.text);来查看该标签/其他对象类型的内容.

另一个选择是在控制台中运行GDB,如下所示:

gdb
attach <your process name>
Run Code Online (Sandbox Code Playgroud)

然后使用po(print-object)命令查看变量的值,如下所示:

po variableName
Run Code Online (Sandbox Code Playgroud)

要查看原始类型的值(int,float,long,double,char,等),你可以使用print命令,而在这样的控制台中运行GDB:

print yourPrimitiveVariable
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

编辑:

使用该po命令,您可以使用属性名称(self.myProperty)或ivar名称(可能_myProperty)打印出对象的值.我在这里演示了这个:

在此输入图像描述

  • 每当我尝试这样做时,我不断收到以下错误:`error:error:对'id'的引用是含糊的注意:通过名称查找找到的候选是'id'注意:通过名称查找找到的候选是'id'错误:1解析表达式的错误 (2认同)