iOS开发之笔记摘录

常见崩溃的原因之iOS笔记摘录

2020-04-13  本文已影响0人  平安喜乐698
目录

前言


    @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前没有判断是否存在
上一篇下一篇

猜你喜欢

热点阅读