weakSelf 或 strongSelf

在block中为了防止循环引用会使用weakSelf 或者 strongSelf
那么什么时候使用weakSelf,什么时候使用strongSelf;

1.如果block内部需要访问self的方法,属性或者实例变量需要使用weakSelf;
2.如果在block内需要多次访问self,则需要使用strongSelf
3.如果在block内部存在多线程环境访问self,则需要使用strongSelf

__weak typeof(self)weakSelf = self;
_collectionView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        __strong typeof(self)strongSelf = weakSelf;
        dispatch_async(dispatch_get_main_queue(), ^{
            [strongSelf loadData];
        });
    }];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容