2011-09-10 29 views
4

我從Visual Studio來到Xcode,並在檢查或檢查斷點處的變量時遇到了一些麻煩。在Xcode調試中觀察變量或檢查對象的提示

很多時候我會嘗試通過鼠標懸停來檢查一個對象,並展開它的屬性,我只會看到一個十六進制的屬性表示,而且在摘要中只能看到一個十六進制的表示形式。例如,Facebook sdk中的Facebook對象具有一個NSCFString的訪問令牌屬性。在調試器中,如何查看實際的字符串值而不是該屬性的十六進制值?

是否有任何非常有用的gdb命令,我應該在調試窗口中使用?

此外,爲什麼總是說當我將鼠標放在調試器中的東西上時,將iTunes添加爲口語音軌?

回答

5

正如您所指出的那樣,有一些GDB命令可以啓發您的生活。

打印對象:

PO對象名

可能是最常用的命令,以幫助您裏面Xcode調試。下面是關於Xcode調試器中GDB命令的綜述:Debugging tips for Objective-C programming

就我個人而言,我依賴於使用NSLog的老式打印語句。它確實是一個疼痛使用GDB命令一直

爲了我的事情會更快,當我可以只打印對象和實際看到發生了什麼事情時間我運行應用程序:

NSLog(@"%@", [info valueForKey:key]); 

下面是使用的NSLog帶參數的一些技巧:CocoaDev: NSLog

缺點:一旦應用程序被釋放,我必須清除NSLog。


給你的第二個很奇怪的iTunes問題:你在Mac上啓用了輔助模式嗎? (只是猜測,我從來沒有碰到類似的東西)

+1

在下降點上,我在各個地方遇到的提示是使用:#define MyLog if(0);其他NSLog',同時開發和更改0爲1釋放。這可以防止編譯NSLogs以供發佈。我現在一直都在使用它。節省了很多麻煩,剔除NSLog。 – Obliquely

0

你的iTunes問題:也許你意外地從數據提示中拿起一些東西。

我在OSX 5.1.1中無法使用數據提示時遇到問題:懸停不顯示,沒有眼睛和信息按鈕。相反,點擊一個變量會下拉一個以添加到iTunes ...爲結尾的菜單,這正是我猜測你看到的。

對不起,我不能更清楚,但我一直無法弄清楚這個菜單與不起作用的數據提示之間的關係。我發佈了一個關於如何修復它的問題(xcode 5.1.1數據提示在調試中失敗),如果我得到適用於您的問題的答案,我將與您分享。