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];
}
};
网友评论