1,KVO+通知等 --監(jiān)聽類
必須在dealloc方法中注銷監(jiān)聽,否則極其容易崩潰
- (void)dealloc {
[self.currentTask removeObserver:self forKeyPath:@"status" context:nil];
//KVO崩潰,添加監(jiān)聽者必須記得取消監(jiān)聽 否則就崩給你看
[self removeObserverBlocks];
}
2,除法的使用
當(dāng)被除數(shù)為0時,無法計算,那就崩給你看
- (void)dealloc {
self.model.value1/self.model.value2
如果value2==0 崩給你看
}
3,非可變字典和數(shù)組
尤其在使用字面量方法來快捷創(chuàng)建時,當(dāng)value為nil時,崩給你看
NSDictionary *requestDict = @{@"opt" : @2,
@"account" : account,
@"check" : @(check),
@"become" : become};
如果account,become有任何一個為nil,崩給你看
4,富文本
如果string是空,崩給你看
NSDictionary *attributes = @{
NSFontAttributeName:[UIFont kdxTextCellMessageFont],
NSParagraphStyleAttributeName:paragraphStyle,
NSForegroundColorAttributeName:[UIColor kdxTextCellMessageColor]
};
self.contentTextView.attributedText = [[NSAttributedString alloc] initWithString:string attributes:attributes];
string為nil,崩給你看
5,歸檔 解檔
數(shù)據(jù)解析通過MJExtension 屬性int 加了個* 導(dǎo)致崩潰
@property (nonatomic ,assign) int * code;//手賤,多加了個*
6,越界
這個應(yīng)該是最常見的崩潰問題了
數(shù)組越界
NSArray *arr = @[@"1",@"2",@"3",@"4"];
NSString *str = arr[4]; //越界取值
字符串range越界
NSString *string = @"隨便的一點文字";
NSString *str =[string substringWithRange:NSMakeRange(0, 10)];
7,調(diào)用了沒有的方法
這個是最最最常見的崩潰
OC的運行時環(huán)境,代碼實際運行的時候并非當(dāng)初指定的類型,調(diào)用了實際類型沒有的方法必然崩潰;