iOS 中常見crash總結(jié)

1、unrecognized selector sent to instance(找不到方法)
2、KVC造成的crash
給不存在的key(包括key為nil)設(shè)置value

 [obj setValue:@"value" forKey:@"UndefinedKey"]
 [obj valueForKey:@"UndefinedKey"]

解決方案
方案1、如果屬性存在,利用iOS的反射機(jī)制來(lái)規(guī)避,NSStringFromSelector(@selector())將SEL反射為字符串作為key。這樣在@selector()中傳入方法名的過(guò)程中,編譯器會(huì)有合法性檢查,如果方法不存在或未實(shí)現(xiàn)會(huì)報(bào)黃色警告。
方案2、重寫類的setValue:forUndefinedKey:和valueForUndefinedKey:

-(void)setValue:(id)value forUndefinedKey:(NSString *)key{

}
-(id)valueForUndefinedKey:(NSString *)key{
    return nil;
}

3、EXC_BAD_ACCESS
出現(xiàn)懸掛指針,對(duì)象沒(méi)有被初始化,或者訪問(wèn)的對(duì)象被釋放
4、KVO引起的崩潰
添加了觀察者,沒(méi)有在正確的時(shí)機(jī)移除
5、集合類相關(guān)崩潰
越界、添加nil、多線程非原子性操作、遍歷的同時(shí)移除元素
6、多線程中的崩潰
7、Socket長(zhǎng)連接,進(jìn)入后臺(tái)沒(méi)有關(guān)閉
8、Watch Dog超時(shí)造成的crash
9、后臺(tái)返回NSNull導(dǎo)致的崩潰,多見于Java做后臺(tái)服務(wù)器開發(fā)語(yǔ)言
10、

[UIImage stringByDeletingPathExtension]

對(duì)一個(gè)image對(duì)象再次進(jìn)行初始化操作

最后編輯于
?著作權(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)容

  • 好好說(shuō)話到底有多難? “好好說(shuō)話”是社會(huì)公認(rèn)的常識(shí),可是能真正做到的人卻不多。就像“知道了那么多道理,卻依然過(guò)不好...
    8230簡(jiǎn)單閱讀 376評(píng)論 0 0
  • 今日體驗(yàn),今天下了班給店長(zhǎng)出去找客戶找要維修費(fèi),車輛維修完長(zhǎng)時(shí)間都沒(méi)有結(jié)帳,一直在追帳都沒(méi)有找到人,今天可算給結(jié)帳...
    王全峰閱讀 128評(píng)論 0 0
  • 一年前,曾讀過(guò)蔡崇達(dá)的《皮囊》,著實(shí)的提不起興趣,就擱置了許久,也忘了還有這本書。 恰巧,這個(gè)暑假時(shí)間很多。習(xí)慣于...
    我的筆名是西瓜閱讀 760評(píng)論 0 2
  • 偶成 事不找人人找事,人不找事事找人。 一時(shí)人事兩不擾,便得清凈自在心。 2011.3.23 擬古 游子無(wú)所依,策...
    以一圣真閱讀 512評(píng)論 0 0
  • 什么是婚姻觀? 我先提出兩個(gè)最基本的問(wèn)題: 1.怎樣看待婚姻? 2.在婚姻里該如何生活? 1.怎樣看待婚姻? 簡(jiǎn)單...
    Ace_Lee閱讀 841評(píng)論 0 0

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