1、報(bào)錯(cuò)為L(zhǎng)inker時(shí),表示沒(méi)有導(dǎo)入所需的文件
2、EXC_BAD_ACCESS(SIGBUS或SIGSEGV):
通常由于內(nèi)存管理問(wèn)題引起,app進(jìn)入毀壞狀態(tài)
這種錯(cuò)誤通常是內(nèi)存管理的問(wèn)題,一般是訪問(wèn)了已經(jīng)釋放的對(duì)象導(dǎo)致的,可以開(kāi)啟僵尸對(duì)象(Zombie?Objects)來(lái)定位問(wèn)題:
在Xcode的菜單:
Product->Scheme->Edit?Scheme->Run????.app
右邊的選項(xiàng)中,選中Enable?Zombie?Objects
開(kāi)啟該選項(xiàng)后,程序在運(yùn)行時(shí),如果訪問(wèn)了已經(jīng)釋放的對(duì)象,則會(huì)給出較準(zhǔn)確的定位信息,可以幫助確定問(wèn)題所在。
該功能的原理是,在對(duì)象釋放(retainCount為0)時(shí),使用一個(gè)內(nèi)置的Zombie對(duì)象,替代原來(lái)被釋放的對(duì)象。無(wú)論向該對(duì)象發(fā)送什么消息(函數(shù)調(diào)用),都會(huì)觸發(fā)異常,拋出調(diào)試信息。
記得在問(wèn)題被修復(fù)后,關(guān)閉該功能
3、SIGBART:通常會(huì)在Debug Output窗口輸出一些錯(cuò)誤信息
運(yùn)行要使用iOS模擬器的程序時(shí),如果出現(xiàn)了”Unable to run app in SimulatorAn error was encountered while running…”錯(cuò)誤提示,只需iOS Simulator—>Reset Content and Setting…—>Reset即可
4、this class is not key value coding-compliant for the key leftView.'
出現(xiàn)這種錯(cuò)誤意思是outlet沒(méi)有正確連接(但有時(shí)候已經(jīng)正確連接了,只是之前有出現(xiàn)過(guò)沒(méi)有正確連接的情況,還抱這個(gè)錯(cuò)誤,這就有可能是因?yàn)閄code的緩存問(wèn)題,沒(méi)有及時(shí)更新改動(dòng),這種情況下clean掉Xcode得緩存即可:command+shift+k)
故事板上的tableViewController上面cell上面的控件要想直接outlet連接成視圖控制器的屬性,必須得將其tableView的cell屬性設(shè)置成static cell不然系統(tǒng)無(wú)法區(qū)分是哪個(gè)cell的控件連接到視圖控制器,且在.m文件中得確定cell分區(qū)數(shù)和行數(shù)的方法要?jiǎng)h掉(這兩個(gè)方法是為可重用cell而編寫(xiě)的。
5、reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: A multiplier of 0 or a nil second item together with a location for the first attribute creates an illegal constraint of a location equal to a constant. Location attributes must be specified in pairs'
出現(xiàn)這種錯(cuò)誤的原因是還沒(méi)有將視圖加進(jìn)控制器中(self.view addSubview:xxxxxx),就先對(duì)這個(gè)視圖進(jìn)行了布局constraint
6、ERROR: AddressSanitizer: heap-buffer-overflow on address
是因?yàn)殚_(kāi)啟了AddressSanitizer,關(guān)閉之后就不會(huì)出現(xiàn)這個(gè)問(wèn)題
7、code signing is required for product type 'Application' in SDK 'iOS 7.0',
就是說(shuō)代碼簽名證書(shū)不對(duì)勁。
解決方案,
1.選擇工程->Build Settings -> Code Signing -> Code Signing Identity -> Debug -> Any ios SDK將選項(xiàng)改為:iPhone Developer
2.重新下載你的證書(shū),或者修改通配符,或者說(shuō)修改你的appid。選擇工程-》Bundle Identifier修改為最新的appid。造成這種原因是因?yàn)槟阈薷牧四愕腶pp sdk版本。
如果還不行,可以試試
Edit Project Setting下面的那個(gè)菜單:Edit Active Target “Hello World”=》Build=》Code Signing=》Any ios的值設(shè)置為iphone Developer
8、“App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.plistfile.”
簡(jiǎn)而言之:ATS禁止了HTTP的明文傳輸,因?yàn)樗话踩?梢孕薷腎nfo.plist文件,讓它臨時(shí)允許明文傳輸。
解決辦法:
在Info.plist文件中添加"App Transport SecuritySettings", Type為"Dictionary",再添加"Allow Arbitray Loads", Type為"Boolean",“Value”為“YES”即可。
9、linker command failed with exit code 1 (use -v to see invocation)
一般為添加的靜態(tài)庫(kù)出錯(cuò),一般團(tuán)隊(duì)多人的項(xiàng)目會(huì)出現(xiàn)這種情況,這時(shí)查看一下項(xiàng)目中的靜態(tài)庫(kù),有些變成淺色的就說(shuō)明該靜態(tài)庫(kù)添加失敗了,重新添加一遍之后就OK了。