2010-10-26 60 views
0

我想知道是否有一種有效的方法來調試Objective-C編碼時xcode中的問題。我經常創建網頁,並在jquery和javascript中編寫代碼,您可以在代碼中的不同位置設置各種警報框,以確定腳本是否正確執行了部分。你可以在xcode中做這樣的事情,以確保你的腳本正確執行方法並正確地創建變量嗎?如何正確調試在xCode和Objective-C

感謝

回答

2

使用調試器 - 這就是它的用途!通過單擊灰色旁邊的代碼行旁邊設置斷點。當這行代碼將被執行時,調試器將啓動並突出顯示正在執行的當前位置。您可以將光標懸停在IDE中的變量上以檢查其值,查看當前的調用堆棧(在此處查看此代碼已被調用)並獲取本地變量的列表以幫助跟蹤程序狀態。您也可以在這裏修改變量屬性,這通常會使調試變得更簡單。 'Stepping Over'(cmd + shift + o)執行代碼,它執行當前行,'Stepping Into'(cmd_shift + i),該代碼步入當前代碼行(如果它是函數)或'Stepping Out'返回調用堆棧。

如果您想堅持'老派'printf風格調試,請使用NSLog輸出到控制檯。

NSLog(@"this text appears"); 

打印以下控制檯:

這段文字出現

要打印一些基本的變量值:

CGFloat pi = 3.14; 
NSString *aFloatString = [NSString stringWithFormat:@"%.2f", pi]; 
NSLog(@"pi is equal to: %@", aFloatString); 

打印:

pi是Ë QUA到:3.14

標準C格式化器可以在NSLog%d對於int,%.2f用於浮法爲2位小數等。使用%@NSString*秒。

記住NSLog將繼續留在生產代碼,除非你#IFDEF它釋放建立(或類似的東西),所以如果你不想性能損失,或尷尬的控制檯日誌陪你將要刪除的應用程序他們。

我已經知道該轉儲以下勸慰垃圾的功能 - 這是不好:

OUTPUT: 
Number of vertices is: 1200 
<Requested reduction> 
Can I kick it? 
.... 
.... 
YES. I. CAN! 
Number of vertices is: 800 

可以用刪除這樣的事情已經做了:|

+0

我剛剛開始在ios開發中,每當我懸停時,我所看到的就是變量的地址。你如何看到允許說NSString *的實際價值?我可以修改它和如何? – pdiddy 2010-10-26 21:23:43

+1

單擊他的'gdb'按鈕?(看起來像一個小控制檯)並查找列出局部變量(小表)的窗口部分。您可能需要在「變量」下展開「本地人」標題。 'Value'列給出了內存地址(或像int這樣的基本值)。 '摘要'將顯示在NSString *中保存的字符串,但不能修改摘要AFAIK(因爲這是對象的表示形式)。右鍵單擊(按住Ctrl鍵並單擊左鍵)以獲取上下文菜單,以幫助進一步探索此窗口。 – davbryn 2010-10-26 21:35:24

+0

對不起,完成xCode新手。插入斷點並單擊「構建和調試」時如何訪問IDE? – sadmicrowave 2010-10-26 21:43:29

0

是,調試器可以做你想做的事情(只設置一些斷點 - 右鍵單擊​​您想要的地方 - 然後建立&調試)

+0

我錯過了什麼?如何在Mac上「點擊右鍵」? – sadmicrowave 2010-10-26 21:13:17

+0

用強大的鼠標,點擊時將手指放在右側。在筆記本電腦上,將兩根手指放在觸控板上(您可能必須在觸控板控制面板中啓用此功能)。您也可以在點擊之前按住控制鍵,但需要雙手。小鼠和觸控板支持其他手勢;搜索更多,如果你不熟悉。 – outis 2010-10-26 21:30:53

+0

ctrl-click應該做同樣的事 – davbryn 2010-10-26 21:36:15

0

你可以嘗試寫安慰。

NSLog(@"Some status message here"); 
NSLog(@"The value of myObject is:%@", myObject); 

要查看應用程序的輸出,在Xcode運行時,單擊運行 - >控制檯,你會看到所有的輸出從您的應用程序。