你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> Swift 代碼調試-善用XCode工具(UI調試,五種斷點,預覽UIImage...)

Swift 代碼調試-善用XCode工具(UI調試,五種斷點,預覽UIImage...)

編輯:IOS開發綜合

工欲善其事,必先利其器,強烈建議新手同學好好研究下XCode這個工具。比如Build Settings,Build Info Rules,Build Parse, Edit Scheme…


前言:這個Swift調試系列分為四篇

  1. 圖形化界面調試
  2. LLDB常用命令
  3. LLDB進階使用
Zombie等其他調試

2015.12月和2016.1月主要更新iOS開發的設計模式和Instruments優化技巧,穿插著寫一些別的。


斷點

斷點是調試中經常用到的,讓代碼停止在錯誤出現的地方,看看變量以及上下文實際的變化,往往就能夠找到問題所在。

點擊左側部分就可以添加斷點,再單機可以禁用單個斷點

\

導航欄中的斷點列表

\

可以右鍵來禁用,編輯,刪除斷點。

\


斷點上下文

\
讓我們來看看圖中的四個區域

  1. 這裡可以看到CPU,內存,磁盤以及網絡情況。注意,只有在實際設備上才是有意義的
  2. 線程信息,可以看到當前停在main Queue上,app運行的時候也啟動了其他幾個隊列。注意,調試的時候看看代碼運行的線程是否正確很有必要
  3. 這裡可以看到Local變量,Swift有個好處是按照Module來劃分了變量,簡單粗暴
這個區域是LLDB調試區域,可以用LLDB命令執行任何動態的代碼

我們著重來看下3,4區域,新手往往只會看變量,其實這裡有很多可以利用的信息
\
其中
A. 禁用,啟用所有斷點
B. 繼續執行
C. 跳過這一行
D. step in(例如進入到函數實現內部)
E. step out (退出step in)
F. 打開UI調試 (後問會詳細闡述)
G.模擬位置
H.選擇線程
I. 查看線程調用堆棧
其中I的截圖如下
\


條件斷點

舉個例子,我想停在第888次執行?總不能一次次的continue吧!

 for var index = 0;index < 1000;index++ {
            print(index)
  }

右鍵斷點,選擇edit breakpoint
\

然後填寫條件

\

condition就是代碼觸發的條件
ignore就是在斷點觸發前忽略幾次
action是斷點觸發後,執行的LLDB動作,這裡很簡單就是打印當前的sum
options,執行完action後是否繼續執行

可以看到運行的截圖
\


准備工作

接下來講的幾種斷點添加方式都是,在斷點導航底部,如圖添加
\


Swift Error 斷點

這個在Swift開發中很常用

添加一個Swift Error斷點

定義一個方法,來拋出Swift Error

   func test() throws{
        throw DemoError.Type1
    }
    enum DemoError: ErrorType {
        case Type1
        case TYpe2
    }

然後,這樣調用

do{
    try test()
}catch{

}

會發現,在Swift Error發生的時候,斷點觸發

\

當然,Swift Error斷點也支持編輯來捕獲指定類型的Error

\

為了方便讀者閱讀,圖片我沒加水印,轉發者請注明轉自 Leo的CSDN博客(http://blog.csdn.net/hello_hwc?viewmode=list)


Exception斷點

在拋出異常的時候觸發
這個在iOS開發中很常用
有過iOS開發的都知道,Cocoa在錯誤的時候會拋出異常,而實用這個斷點,會幫助我們捕獲異常。
例如
隨便performSelector,會拋出異常

   self.performSelector("abcdefg")

在添加了All Exception後,會停在這裡
\


Symbol斷點

停在不方便直接加斷點的地方
例如,停在

-[NSObject setValue:forUndefinedKey:]

如圖
\
然後,這樣調用

        self.setValue("Dta", forUndefinedKey: "dagd")

會發現斷點觸發
\


Test Failure斷點

這個就是使用XCTest框架來測試的時候,當Test Case的Assert失敗的時候觸發的斷點。這裡不截圖了


變量圖片預覽

\

紅圈中左邊是預覽,右邊是打印Description


UI調試

如何打開UI調試
這裡寫圖片描述

圖中的紅圈部分,點擊後,整個調試區域如圖

其中

  1. 用來查看View的層次結構,樹狀圖
  2. View的可視區域,可以詳細的看到View的疊加關系
  3. 選中某一個View後的屬性

    查看AutoLayout約束
    右鍵某一個View

    \

    然後選擇Show Constraints,

    \

    注意,第一張圖右上角的地址

    0x7f8169e7daa0

    這裡先記著,這個地址對LLDB的調試很有用,下一篇我會講到


    • 1
    • 1
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved