16

我正在编写一个 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但我不知道如何做到这一点。我尝试过使用 LLDB,但我一直收到这个人遇到的相同错误(lldb 无法打印变量值并出现“错误:对 'id' 的引用不明确”)。这个问题的公认答案是,LLDB 坏了,我应该只使用 GDB;但是,我拒绝接受如此基本的东西被破坏了。 print myNameprint [self myName]

尽管如此,我也尝试过使用具有上述类似命令的 GDB;但是,我也无法让 GDB 工作。请帮忙

4

2 回答 2

29

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

在此处输入图像描述

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

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

gdb
attach <your process name>

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

po variableName

要查看原始类型(intfloatlongdoublechar等)的值,您可以print在控制台中运行 GDB 时使用该命令,如下所示:

print yourPrimitiveVariable

希望这可以帮助!

编辑:

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

在此处输入图像描述

于 2012-07-16T23:06:31.310 回答
3

尝试在调试区域中使用以下表达式来打印对象,

p self.view.bounds.size.width

或使用,

po self.view

p - Print 仅用于打印普通/简单值,而 po - Print Object 与 NSLog 相同以打印对象的值

于 2014-09-11T12:19:45.133 回答