(技巧分享)老生常談的符號(hào)斷點(diǎn) for Xcode ,找出你想要的ViewController

背景

小清新

Xcode中的符號(hào)斷點(diǎn)(Symbolic breakpoint)可以針對(duì)某一個(gè)方法設(shè)置斷點(diǎn)并暫停執(zhí)行(如不懂符號(hào)斷點(diǎn)的小伙伴們網(wǎng)上隨便一搜都能入門了)。因此我們可以利用這特性,維護(hù)項(xiàng)目的時(shí)候可以不用看源代碼直接運(yùn)行APP就能快速的了解到當(dāng)前所運(yùn)行的頁面是屬于哪一個(gè)ViewController。

本技巧需了解符號(hào)斷點(diǎn),本篇只是利用此特性來總結(jié)的一個(gè)開發(fā)技巧分享。所以不涉及到斷點(diǎn)這一塊的知識(shí)。

開始

既然我們知道符號(hào)斷點(diǎn)(Symbolic breakpoint)可以讓某一個(gè)函數(shù)暫停,而我們的ViewController幾乎都有實(shí)現(xiàn)viewDidLoad方法(沒實(shí)現(xiàn)的我還沒真沒碰到過。。。),然而每進(jìn)入一個(gè)頁面都會(huì)調(diào)用viewDidLoad函數(shù),因此我們就打一個(gè)符號(hào)斷點(diǎn)讓它暫停在UIViewControllerviewDidLoad方法,然后每次進(jìn)入到APP的頁面就可以在我們的Xcode的左側(cè)堆棧一欄看到調(diào)用順序。

斷點(diǎn)設(shè)置GIF圖如下:

斷點(diǎn)設(shè)置GIF圖

左側(cè)堆棧示例圖如下:

左側(cè)堆棧示例圖

最下面那個(gè)黑色的類名就是我們APP頁面顯示所對(duì)應(yīng)的ViewController

優(yōu)化

雖然以上步驟是實(shí)現(xiàn)了我們的需求,but...每次要找一個(gè)頁面是屬于哪一個(gè)ViewController的時(shí)候,都會(huì)在xcode里暫停,而且還要在左側(cè)欄的堆棧,而且重點(diǎn)還是每次我顯示一個(gè)頁面他都要執(zhí)行這個(gè)符號(hào)斷點(diǎn)并且暫停在Xcode里(雖然可以禁止斷點(diǎn),當(dāng)需要使用的時(shí)候在打開,但筆者覺得還是略麻煩)。

so... 筆者覺得把斷點(diǎn)加在BaseViewController里,然后我們讓斷點(diǎn)的automatically continue after evaluating actions選項(xiàng)勾上,這樣它就會(huì)安安靜靜的執(zhí)行不會(huì)暫停了。然后我們?cè)跀帱c(diǎn)里添加一個(gè)debug命令,命令為po self把當(dāng)前的ViewController打印在控制臺(tái)即可(如下示例圖)。

示例圖

大多數(shù)項(xiàng)目里的ViewController都是繼承自BaseViewController,而BaseViewController又是繼承與UIViewController的。而上面的示例圖里的NMBaseViewController就是我們項(xiàng)目的BaseViewController。所以把符號(hào)斷點(diǎn)設(shè)置到NMBaseViewController即可,至于為什么不設(shè)置到UIViewController,那是因?yàn)樵诳刂婆_(tái)里使用po命令找不到self這個(gè)標(biāo)志。

最后

只是根據(jù)個(gè)人經(jīng)驗(yàn)總結(jié)出來的一個(gè)小技巧,個(gè)人覺得用處還是蠻大的。因?yàn)楫?dāng)你在維護(hù)項(xiàng)目的時(shí)候,有時(shí)候要修改某一個(gè)頁面的東西往往要先找到這個(gè)頁面所對(duì)應(yīng)的Controller,如果純屬的去看代碼追蹤流程來得知某一頁面是屬于哪一個(gè)Controller,工作量必然很大。而且一個(gè)項(xiàng)目稍微偏大點(diǎn),有時(shí)候自己寫過的東西都忘了那個(gè)頁面所對(duì)應(yīng)的Controller叫什么名字了。。所以用這個(gè)小技巧能快速定位到頁面所對(duì)應(yīng)的Controller。

當(dāng)然如果有更好的技巧也歡迎告知,以上純屬筆者個(gè)人經(jīng)驗(yàn)分享。如需轉(zhuǎn)載請(qǐng)注明原文地址。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載 與調(diào)試器共舞 - LLDB 的華爾茲: https://objccn.io/issue-19-2/ 推薦:i...
    F麥子閱讀 3,457評(píng)論 0 10
  • LLDB的Xcode默認(rèn)的調(diào)試器,它與LLVM編譯器一起,帶給我們更豐富的流程控制和數(shù)據(jù)檢測(cè)的調(diào)試功能。平時(shí)用Xc...
    CoderSC閱讀 1,502評(píng)論 0 2
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,262評(píng)論 4 61
  • 《凝望著深秋雨夜的感傷》 一周都在下的蒙蒙細(xì)雨雨 和他忠實(shí)小伙伴 秋風(fēng) 打落棗樹和石榴樹 僅剩的 最后遮羞的外衣 ...
    孫子曰閱讀 357評(píng)論 2 2
  • 大鬧天宮! 誘惑! 大鬧天宮??! 誘惑!! 大鬧天宮!??! 誘惑!??! ………… 我實(shí)在忍受不了了??! 我好想報(bào)名...
    愛生活挺自己閱讀 208評(píng)論 0 0

友情鏈接更多精彩內(nèi)容