
在開發(fā)中經(jīng)常會(huì)遇到項(xiàng)目沖突, 程序崩潰,Xcode異常等情況,有些問題第一次遇到時(shí)基本上就懵了,下面就來總結(jié)下常見的異常解決方案。
第一種 排除SVN沖突
在團(tuán)隊(duì)開發(fā)中,SVN沖突是最常見的了,程序異常時(shí)查看SVN文件沖突基本上成了本能。

首先,右鍵主項(xiàng)目文件即xcodeproj文件,顯示包內(nèi)容,用文本編輯器查看包里的project.pbxproj,查找文件里是否有“<<<<<“ “=======”字符,有的話即表示沖突,刪除沖突的地方即可解決。

此種異常一般就是程序無法運(yùn)行,或是無法提交SVN等。在異常情況下算是小case了。
第二種 匪夷所思的頻繁崩潰

向這種頻繁崩潰的情況,直接暴力解決。
首先右鍵主項(xiàng)目文件即xcodeproj文件,顯示包內(nèi)容。找到找到project.xcworkspace文件,右鍵顯示包內(nèi)容。

刪除xcuserdata文件夾,解決。

xcuserdata文件夾里保存著當(dāng)前項(xiàng)目的一些臨時(shí)信息,很多崩潰其實(shí)是加載失敗導(dǎo)致的,刪除這個(gè)文件夾,Xcode會(huì)重新布局加載信息。如此崩潰就解決了。
小知識(shí),程序崩潰的處理
程序在崩潰的時(shí)候,xcode經(jīng)常沒有給出準(zhǔn)確的堆棧信息,而是定位在了main方法里,這個(gè)讓人很是頭疼,這個(gè)可以通過添加一個(gè)Exception Breakpoint,選擇 All來解決。另一種是Crash,EXC_BAD_ACCESS ,這個(gè)比較頭疼,因?yàn)镃rash的時(shí)候,可能是比較早之前的某個(gè)變量釋放了,現(xiàn)在訪問時(shí)出問題。Console里也沒顯示什么日志。開Scheme選項(xiàng)選擇Edit Scheme然后按圖勾上Enable Zombie Objects 和Malloc Stack那兩項(xiàng),記住一般只有在定位EXC_BAD_ACCESS時(shí)候才勾選。
重新跑一下,如果是到Exception Breakpoint處停止了,可以在Console中輸入:c(continue)按回車?yán)^續(xù)跑,直到Crash??聪翪onsole是不是有跟SIGABRT類似的錯(cuò)誤信息日志了。如果還沒有日志,在Console中輸入
po $eax
$eax標(biāo)志出錯(cuò)的地方,適用模擬器,真機(jī)用$r0(話說EXC_BAD_ACCESS這種 錯(cuò)誤模擬器定位就行),“$eax”是cup的一個(gè)寄存器。在一個(gè)異常的情況下,這個(gè)寄存器將會(huì)包含一個(gè)異常對(duì)象的指針。注意:$eax只會(huì)在模擬器里面工作,假如你在設(shè)備上調(diào)試,你將需要使用”$r0″寄存器。還可以輸入比如:
po [$eax name]
po [$eax reason]
等指令查看錯(cuò)誤其他信息(注意方括號(hào)后沒分號(hào)的)。