簡體   English   中英

如何在xCode和Objective-C中正確調試

[英]how to properly debug in xCode and Objective-C

我想知道在Objective-C中編碼時是否存在有效的方法來調試xcode中的問題。 我不斷創建網頁並使用jquery和javascript編寫代碼,您可以在代碼中的不同位置設置各種警報框,以確定您的腳本是否正確執行了部分。 您可以在xcode中執行類似的操作以確保腳本正確執行方法並正確創建變量嗎?

謝謝

使用調試器 - 這就是它的用途! 通過單擊要打破的代碼行旁邊的灰色設置斷點。 當這行代碼被執行時,調試器將啟動並突出顯示當前執行位置。 您可以將光標懸停在IDE中的變量上以檢查它們的值,查看當前的調用堆棧(以查看此處已調用此代碼),並獲取局部變量列表以幫助跟蹤程序狀態。 您也可以在此處修改變量屬性,這通常會使調試更簡單。

通過'Stepping Over'(cmd + shift + o)逐行執行代碼,執行當前行,'Stepping Into'(cmd_shift + i)進入當前代碼行(如果它是函數),或者'Stepping Out'返回調用堆棧。

如果要堅持使用“老式”的printf樣式調試,請將NSLog ing輸出轉到控制台。

NSLog(@"this text appears");

將以下內容打印到控制台:

此文字出現

要打印一些基本變量值:

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

打印:

pi等於:3.14

可以在NSLog中使用標准的c格式化程序,即%d表示int, %.2f表示浮點到小數點后兩位。等等NSString* %@ NSString*使用%@

請記住, NSLog將保留在生產代碼中,除非您從發布版本(或類似的東西)中#IFDEF它,因此如果您不希望性能#IFDEF ,或者應用程序附帶令人尷尬的控制台日志,您將需要刪除它們。

我已經知道將垃圾轉儲到控制台的垃圾功能 - 這並不好:

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

可以做到刪除這樣的事情:|

是的,調試器可以做你想做的所有事情(只需設置一些斷點 - 右鍵單擊​​你想要的地方 - 然后構建和調試)

您可以嘗試寫入控制台。

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

要查看應用程序的輸出,在使用Xcode運行時,單擊Run-> Console,您將看到應用程序的所有輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM