2012-07-21 200 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