Xcode Debug 指南(一) 目錄 Xcode Debug 指南(一)– 當前 Xcode Debug 指南(二) Xcode Debug 指南(三) Xcode Debug 指南(四) 準備工作 首先,標準開局:打開 Xcode,新建一個項目。隨後,在 Main.storyboard 中拖入一個 Table View Controller,將「箭頭」(Storyboard Entry Point)拖到它身上。 「初始化」 Storyboard 然後新建一個 UITableViewController 子類: 創建 Table view controller 子類再回到 Storyboard,將控制器設置為 DemoTableViewController: 設置 Controller 類型選中一個 Cell,設置它的 Reuse Identifier 為 Cell: 設置 Reuse ID以上均為基本操作,此處假定你已經懂得了。如果你還不會,你應該從更基礎的地方學習。 斷點(Breakpoint)Table view controller 有一些生命周期方法,除此以外,它還負責給 table view 提供數據、響應它的事件等等: 方法們這些個方法,大家都已經熟絡了。但你知不知道它們被調用的先後順序是怎樣的?通過設置斷點,你就能清楚地知道這一切了: 設置斷點只要滑鼠在左邊點一下,就能把斷點設置上了。這樣,程序就會在斷點位置暫停(當然,前提是 Xcode 必須和你的 App 保持連接): 命中斷點擊中斷點時,斷點所在的那行代碼就綠了,提示你當前的狀態:線程 1 擊中斷點 1.1。從左側面板可以看到,你現在正位於線程 1,處在 DemoTableViewController 實例的 viewDidLoad() 方法中。底部面板有一排工具欄。工具欄的下方左半邊,顯示了當前的所有變數;右半邊有個神秘的 (lldb),它就是本系列文章的主角,但暫時先不提。點擊工具欄的繼續按鈕,程序就會繼續運行: 繼續運行繼續不久,程序又會再次擊中下一個斷點。擊中,繼續,擊中,繼續……這樣,你就知道這些方法分別是什麼時候被調用的了。 最終的調用順序是: viewDidLoad() viewWillAppear(_:) numberOfSections(in:) numberOfSections(in:) tableView(_:, numberOfRowsInSection:) -> Int viewWillLayoutSubviews() numberOfSections(in:) tableView(_:, numberOfRowsInSection:) -> Int tableView(_:, cellForRowAt:) -> UITableViewCell tableView(_:, heightForRowAt:) -> CGFloat tableView(_:, cellForRowAt:) -> UITableViewCell tableView(_:, heightForRowAt:) -> CGFloat viewDidLayoutSubviews() viewWillLayoutSubviews() viewDidLayoutSubviews() viewDidAppear(_:) viewWillLayoutSubviews() viewDidLayoutSubviews() 仔細看看,是不是和你腦海中的一樣呢? 推薦閱讀: 相关文章 {{#data}} {{title}} {{/data}}