在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];
});
}];