首页 > 代码库 > 关于block的回调使用-防止内存泄露问题
关于block的回调使用-防止内存泄露问题
block 一般用于回调,比方请求数据我们把asi封装好,仅仅用block调数据就方便很多
获取到得数据假设要给之加入数据,切记不能够使用self.(这个数组) 或者_(这个数组) addObject 这个函数
由于我们要在block内部改变外部变量,我们须要在使用blcok回调之前
声明
__weaktypeof(self) wekSelf = self; (在这里我使用wekSelf)
在block回调代码段内 一切self(数组或者控件) 所有替换成wekSelf防止内存泄露。
呈现一段代码:
__weak typeof(self) wekSelf =self;
self.page = 1;
NSDictionary *dic = @{@"page":@(self.page)};
[MyDataServicepostMonopolyGroupListRequest:diccllback:^(id data) {
if ([[dataobjectForKey:@"code"]integerValue] ==200) {
NSArray *content = [[dataobjectForKey:@"content"]objectForKey:@"subject_lists"];
if (content && ![contentisKindOfClass:[NSNullclass]]) {
[wekSelf.groupArrremoveAllObjects];
for (NSDictionary *dicin content) {
MYGroup *model = [[MYGroupalloc]initWithJson:dic];
[wekSelf.groupArraddObject:model];
}
dispatch_async(dispatch_get_main_queue(), ^{
[wekSelf.circleTableViewreloadData];
[wekSelf.circleHeaderperformSelector:@selector(endRefreshing)withObject:nilafterDelay:0.1];
});
}
}
}];
关于block的回调使用-防止内存泄露问题