关于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:dic
cllback:^(id data) {

if ([[data
objectForKey:@"code"]integerValue] ==
) {

NSArray *content = [[data
objectForKey:@"content"]objectForKey:@"subject_lists"];

if (content && ![content
isKindOfClass:[NSNull
class]]) {

[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];

});

}

}

}];


上一篇:前端h5遇到的问题及解决办法


下一篇:ext图片预览功能实现,前端代码