目录
前言
@try {
} @catch (NSException *exception) {
} @finally {
}
1. 数组、字典
解决办法:参见Runtime运行时篇
1. 数组下标越界
2. 初始化数组时,数组元素为nil
3. 数组添加元素时,元素为nil
4. 初始化字典时,键/值为nil
5. 字典添加元素时,键/值为nil
2. 系统自带KVO崩溃
1、没有实现observerValueForKeyPath:方法
2、重复移除观察者
3、移除观察者的时候,观察者为nil
4、忘记移除观察者,但观察者已经为nil
3. 未识别的方法
解决办法:参见Runtime运行时篇
1. dic[@""][@""] 前面不是字典类型时
2. 向BOOL类型赋值nil。setNilValueForKey
3. 使调用delegate的协议方法前没有判断是否存在。
4. UITableView、UICollectionView
1. 忘了registerClass cell
2. forCellReuseIdentifier: forHeaderFooterViewReuseIdentifier 添加的类型不一致,错误地将Cell类型注册为Head类型。(不提示崩溃原因)
3. cellForRow、cellForItemAtIndexPath、viewForSupplementaryElementOfKind、viewForHead、ViewForFoot 返回nil 导致崩溃
5. 其他原因
内存爆增:加载高分辨率大图,内存瞬间升至2、3g
make.width.mas_lessThanOrEqualTo(100).mas_greaterThanOrEqualTo(60) 失误造成崩溃(不提示错误)
没有添加到父视图就调用mas_makeConstraints 导致崩溃(有提示)
@interface声明了类,可是没有实现@implementation
使用block前没有判断是否存在
网友评论