2012-07-21 91 views
2

如何在调试器中查看[fetchedResultsController sectionIndexTitles]的值,而无需更改代码?查看方法调用的返回值

return [fetchedResultsController sectionIndexTitles]; 

目前,我使用的伎俩添加tempory变量s,然后使用“打印‘S’的描述”命令。但是这种方法需要我更改代码,所以不方便。

NSArray *s= [fetchedResultsController sectionIndexTitles]; 
return s; 

类似,这将是非常有益的,能够看到下面的语句的[a method1]值:

[b [a method1]] 
+0

好了,让我们只说了WWDC 2012条的视频保存为你找出答案的一个 – 2012-07-21 10:07:03

+0

是的,看#412&#415。 – robertvojta 2012-07-21 10:14:27

回答

5

不要使用断点...添加断点您return线,鼠标右键点击断点,断点编辑,现在你有两个选择......

添加操作调试命令

expr (void)NSLog(@"%@", [fetchedResultsController sectionIndexTitles]); 

...或以类似方式记录消息操作并打开评估后自动继续。

它做什么?

每当你用断点击中你的行时,你的应用程序就会暂停,处理断点行为,并且你打开了评估之后自动继续,当程序处理这些断点时,程序会继续。这就是如何在不修改代码的情况下登录,检查...的方式。

+0

这将是一个有趣的解决方案,实际上并没有再次调用该方法。也许这是不好的选择的一部分,并且该函数在返回之前还会执行一些_(off-topic)_东西。 – 2015-05-15 09:43:29

4

我找到了窍门:

断点命中后,只需输入LLDB以下命令将做的工作:

po [self.fetchedResultsController sectionIndexTitles] 

哪里po是用来打印对象expression -o --的缩写由该表达式产生的值的描述。

1

返回值在Xcode调试器中可见后,立即从函数调用返回后(即立即在按下“逐出”按钮后)。见下图例如:

enter image description here

+1

具体而言,此信息位于调试区域的“变量视图”部分。如果您前一阵子关闭了该视图,则可以通过单击调试区域右下角垃圾桶图标旁边的按钮来重新展开该窗格。 – qix 2016-12-13 10:12:52