IOS中出现内存溢出的情况

1. 使用了第三方类库

  1. 如果在使用Instrument检测内存时,出现溢出并且错误代码定位到了第三方类库的方法,此时应该先下载最新的第三方类库
  2. 如果更新第三方类库依旧提示内存溢出,请继续往下看

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];
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容