block 一般用于回调,比如请求数据我们把asi封装好,只用block调数据就方便许多
获取到得数据如果要给之添加数据,切记不可以使用self.(这个数组) 或者_(这个数组) addObject 这个函数
因为我们要在block内部改变外部变量,我们需要在使用blcok回调之前
声明
__weak typeof(self) wekSelf = self; (在这里我使用wekSelf)
在block回调代码段内 一切self.(数组) 全部替换成wekSelf.防止内存泄露。
呈现一段代码:
__weak typeof(self) wekSelf = self;
self.page = 1;
NSDictionary *dic = @{@"page": @(self.page)};
[MyDataService postMonopolyGroupListRequest:dic cllback:^(id data) {
if ([[data objectForKey:@"code"] integerValue] == 200) {
NSArray *content = [[data objectForKey:@"content"]objectForKey:@"subject_lists"];
if (content && ![content isKindOfClass:[NSNull class]]) {
[wekSelf.groupArr removeAllObjects];
for (NSDictionary *dic in content) {
MYGroup *model = [[MYGroup alloc] initWithJson:dic];
[wekSelf.groupArr addObject:model];
}
dispatch_async(dispatch_get_main_queue(), ^{
[_circleTableView reloadData];
[_circleHeader performSelector:@selector(endRefreshing) withObject:nil afterDelay:0.1];
});
}
}else if ([[data objectForKey:@"code"] integerValue] == 1000){
}
}];
关于block的回调使用-防止内存泄露问题,布布扣,bubuko.com
原文地址:http://blog.csdn.net/han63504/article/details/38299031