例如,如果我想知道返回
[NSKeyedArchiver archiveRootObject:self.privateItems toFile:[self.itemArchPath absoluteString]];
我该怎么办?
答案 0 :(得分:2)
在lldb和Xcode中,如果你“逐步退出”某个功能,当步出完成时,我们将显示你刚离开的功能的返回值。
在Xcode中,在步骤退出后停止,Locals视图的第一个元素(称为“返回值”)将是您刚刚退出的函数的返回值。
如果你在命令行lldb中,同样的东西会出现在停止打印的线程部分:
(lldb) fin
Process 43838 stopped
* thread #1: tid = 0x849c80, 0x0000000100000f5b SimpleStepOut`main(argc=1, argv=0x00007fff5fbff5b8) + 27 at main.c:18, queue = 'com.apple.main-thread', stop reason = step out
Return value: (int) $0 = 5
frame #0: 0x0000000100000f5b SimpleStepOut`main(argc=1, argv=0x00007fff5fbff5b8) + 27 at main.c:18
15
16 int main(int argc, const char * argv[]) {
17 // insert code here...
-> 18 printf("Hello, World - %d!\n", return_five());
19 return 0;
20 }
注意,如果您自定义了帧格式,则可能没有此元素,而是thread.return-value
。
当一个“进/出”碰巧退出该功能时,这样做有点困难,所以现在它只有在您通过踩出来离开该功能时才有效。
答案 1 :(得分:1)
如果你想查看[NSKeyedArchiver archiveRootObject:self.privateItems toFile:[self.itemArchPath absoluteString]]
的结果,你可以将其结果包装在一个简单的条件语句中并打印一条消息:该方法返回一个布尔值,因此它是真或假。 / p>
示例:
bool result = [NSKeyedArchiver archiveRootObject:self.privateItems toFile:[self.itemArchPath absoluteString]];
if (result) {
NSLog(@"It worked!");
} else {
NSLog(@"It failed!");
}
如果您的意思是要检查保存的内容,那么您应该打印保存到的路径并在Mac上查看(如果您正在使用模拟器)或尝试重新加载确保它符合您的预期。
答案 2 :(得分:1)
TwoStraws答案是正确的。
但是,如果您希望在调试时找到返回值(在{2}回答中result
)并且仅在调试时,您可以进入archiveRootObject:toFile:
的调用,然后点击F8
。它将退出该函数,并且(通常)包含一个名为"返回"的伪局部变量。这将保留来自通话的返回值。