1牧嫉、unrecognized selector sent to instance(找不到方法)
2娜遵、KVC造成的crash
給不存在的key(包括key為nil)設(shè)置value
[obj setValue:@"value" forKey:@"UndefinedKey"]
[obj valueForKey:@"UndefinedKey"]
解決方案
方案1、如果屬性存在,利用iOS的反射機制來規(guī)避,NSStringFromSelector(@selector())將SEL反射為字符串作為key祷膳。這樣在@selector()中傳入方法名的過程中,編譯器會有合法性檢查屡立,如果方法不存在或未實現(xiàn)會報黃色警告直晨。
方案2、重寫類的setValue:forUndefinedKey:和valueForUndefinedKey:
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
}
-(id)valueForUndefinedKey:(NSString *)key{
return nil;
}
3膨俐、EXC_BAD_ACCESS
出現(xiàn)懸掛指針设拟,對象沒有被初始化图呢,或者訪問的對象被釋放
4欺旧、KVO引起的崩潰
添加了觀察者阐斜,沒有在正確的時機移除
5牢硅、集合類相關(guān)崩潰
越界座云、添加nil氧苍、多線程非原子性操作崇猫、遍歷的同時移除元素
6、多線程中的崩潰
7匾委、Socket長連接拖叙,進入后臺沒有關(guān)閉
8、Watch Dog超時造成的crash
9赂乐、后臺返回NSNull導致的崩潰薯鳍,多見于Java做后臺服務(wù)器開發(fā)語言
10、
[UIImage stringByDeletingPathExtension]
對一個image對象再次進行初始化操作