每當(dāng)我們開開心心的寫好一塊功能,帶點(diǎn)小期盼的按下command+R,一運(yùn)行...
突然編譯界面跳到main.h,是不是想噴一口老血...
遇到崩潰不要著急,不要胡亂改代碼,先找到崩潰原因,一般情況下,控制臺(tái)會(huì)把崩潰原因打印出來(lái),舉幾個(gè)栗子:
1.調(diào)用了不存在的方法
-[WSMainViewController methodNotExist]: unrecognized selector sent to instance 0x1dd96160
2013-10-23 15:49:52.167 WSCrashSample[5578:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[WSMainViewController methodNotExist]: unrecognized selector sent to instance 0x1dd96160'
2.數(shù)組越界
3.沒(méi)有發(fā)送給實(shí)例
上面這幾種情況,原因都能一下看出來(lái),如果遇到類似圖一這種 CFRunLoopError? 崩潰,原因不明確,左邊線程又看不懂,該怎么辦呢?別著急,可以用全局?jǐn)帱c(diǎn) Exception Breakpoint 快速定位到崩潰地方。
1.點(diǎn)擊斷點(diǎn)列表左下方+號(hào),創(chuàng)建一個(gè)Exception Breakpoint
2.點(diǎn)空白處讓彈框消失
3.運(yùn)行,編譯界面會(huì)跳轉(zhuǎn)到導(dǎo)致崩潰的地方
原來(lái)是調(diào)用masonry導(dǎo)致的崩潰,這種方法適用很多崩潰場(chǎng)景。