xcode开发html5工具,5个Xcode开发调试技巧
1.Enable NSZombie Objects(開(kāi)啟僵尸對(duì)象)
Enable NSZombie Objects可能是整個(gè)Xcode開(kāi)發(fā)環(huán)境中最有用的調(diào)試技巧。這個(gè)技巧非常非常容易追蹤到重復(fù)釋放的問(wèn)題。該技巧會(huì)以非常簡(jiǎn)潔的方式打印指出重復(fù)釋放的類和該類的內(nèi)存地址。
怎么開(kāi)啟僵尸對(duì)象呢?首先打開(kāi)“Edit Scheme”(或者通過(guò)熱鍵?
現(xiàn)在我們可以關(guān)掉ARC來(lái)測(cè)試重復(fù)釋放的問(wèn)題、異常和更容易產(chǎn)生的Crashs,但是即使開(kāi)啟ARC,重復(fù)釋放和與內(nèi)存相關(guān)的Crashs也經(jīng)常發(fā)生。現(xiàn)在假設(shè)我們犯了一些錯(cuò)誤導(dǎo)致了重復(fù)釋放的發(fā)生來(lái)觀察將要發(fā)生什么。
UIView*?view?=?[[[UIView?alloc]?init]?autorelease];
//...
//do?something?with?view...clearly?forgetting?that?it?has?been?autoreleased.
//
[view?release];
現(xiàn)在運(yùn)行這段代碼會(huì)發(fā)生重復(fù)釋放的問(wèn)題,程序?qū)⒈罎⒃谥骱瘮?shù),會(huì)像下面這樣:
Enable NSZombie Objects會(huì)讓調(diào)試器看起來(lái)像這樣:
這個(gè)例子看起來(lái)作用非常小,但是對(duì)于一個(gè)大工程通過(guò)Enable NSZombie Objects打印的信息是非常有用的。
2.對(duì)于所有異常添加Global BreakPoint(全局?jǐn)帱c(diǎn))
當(dāng)你的應(yīng)用異常或者崩潰的時(shí)候Xcode喜歡做的一件事情是直接跳到主函數(shù),就像第一個(gè)調(diào)試技巧中用到的那個(gè)例子一樣。如果異?;蛘弑罎⒛軌蛲A粼诋惓;蛘弑罎l(fā)生的地方那該是多好呀。幸運(yùn)的是有一個(gè)方法可以做到。Xcode有一個(gè)漂亮的功能叫做異常斷點(diǎn),允許我們?cè)诋惓0l(fā)生的時(shí)候在異常發(fā)生的地方放一個(gè)斷點(diǎn)。你可以指定具體的異常也可以指定所有的異常。
怎樣開(kāi)啟異常斷點(diǎn)呢?工程切換到異常瀏覽窗口,點(diǎn)擊下方左側(cè)的“Add Breakpoint”按鈕,然后選擇“Add Exception Breakpoint”確??梢圆东@所有異常。
現(xiàn)在異常發(fā)生時(shí)調(diào)試器不會(huì)直接跳轉(zhuǎn)到主函數(shù)了,而是停留在了異常發(fā)生的地方。
這個(gè)斷點(diǎn)給了我們一個(gè)調(diào)試異常非常好的開(kāi)始的點(diǎn),不用我們?cè)偃ケ闅v代買(mǎi)去找異常發(fā)生的地方了。
3.Static Analyzer(靜態(tài)分析)
Static Analyzer是一個(gè)非常好的工具去發(fā)現(xiàn)編譯器警告不會(huì)提示的問(wèn)題和一些個(gè)人的內(nèi)錯(cuò)泄露和死存儲(chǔ)(不會(huì)用到的賦了值的變量)錯(cuò)誤。這個(gè)方法可能大大的提高內(nèi)存使用和性能,以及提升應(yīng)用的整體穩(wěn)定性和代碼質(zhì)量。
怎么打開(kāi)Static Analyzer?打開(kāi)Xcide的“Product”菜單,選擇Analyzer選項(xiàng)(或者使用熱鍵? shift B)。正像你看到的下面的截圖,Static Analyzer會(huì)捕獲任何應(yīng)用內(nèi)的可能的問(wèn)題然后以藍(lán)色的警告展示出來(lái)。
我們也可以設(shè)置我們的應(yīng)用在我們編譯應(yīng)用的時(shí)候自動(dòng)開(kāi)啟Static Analyzer,打開(kāi)項(xiàng)目project文件,設(shè)置“Run Static Analyzer”為YES,如下圖:
4.Condational Breakpoints(條件斷點(diǎn))
最后一個(gè)調(diào)試技巧條件斷點(diǎn),這只是普通的斷點(diǎn),當(dāng)變量滿足一定條件時(shí)程序停止。這個(gè)調(diào)試技巧在當(dāng)你想要捕獲一個(gè)循環(huán)中的變量的特定值或者一些不常發(fā)生的情況時(shí)是非常有用的,而不用你每次迭代都停止來(lái)查看。
怎樣開(kāi)啟條件變量?只不過(guò)是添加一個(gè)普通斷點(diǎn),然后右鍵點(diǎn)擊斷點(diǎn)選擇“Edit Breakpoint”,這時(shí)就打開(kāi)了一個(gè)斷點(diǎn)編輯器,你可以在這里設(shè)置斷點(diǎn)條件(以及一些其他的斷點(diǎn)設(shè)置),然后選擇“Done”,這個(gè)調(diào)試技巧非常簡(jiǎn)單吧。
5.unrecognized selector send to instancd 快速定位
在Debug菜單中Breakpoints->Create Symbolic Breakpoint
在Symbolic中填寫(xiě)如下方法簽名
-[NSObject(NSObject)?doesNotRecognizeSelector:]
設(shè)置完成后再遇到類似的錯(cuò)誤就會(huì)定位到具體的代碼。
總結(jié)
以上是生活随笔為你收集整理的xcode开发html5工具,5个Xcode开发调试技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vscode用鼠标滚轮_前端开发神器 V
- 下一篇: java as操作_java 对类型的基