1. 使用了第三方類庫
- 如果在使用Instrument檢測內存時,出現溢出并且錯誤代碼定位到了第三方類庫的方法,此時應該先下載最新的第三方類庫
- 如果更新第三方類庫依舊提示內存溢出,請繼續往下看
2. 協議中必須使用weak來進行弱引用
先來一個錯誤了例子
@property(nonatomic,strong)id<JCTopicDelegate> JCdelegate; //在外部調用self. JCdelegate=self
在協議中必須使用弱引用來處理協議正確代碼因為
@property(nonatomic,weak)id<JCTopicDelegate> JCdelegate;
3. Block中必須使用weak來進行弱引用
只要不是在block中聲明的所有對象,都用__weak聲明下
__weak AddressCell*_cell=cell;
__weak typeof(self)_self=self;
cell.IndexPath=indexPath;
cell.BtnDefault.IsCheckBoxBlock=^(BOOL isCheck)
{
if(!isCheck)
{
[_cell.BtnDefault SetCheck:!isCheck];
}
else
{
[_self BtnSetDefaultClick:&isCheck index:_cell.IndexPath];
}
};