block 循环引用问题

2015-10-14 11:59:42 +08:00
 tunnyios
-(void)getMyGroupList
{
__weak __typeof(self) weakSelf = self;
[[FZoneHttpsOnServers sharedInstance] getMyGroupListOnMyServersSuccess:^(id info) {
NSDictionary *dic = (NSDictionary *)info;
if ([[FZoneUtility getString:dic[@"success"]] boolValue]) {
NSLog(@"%@", [dic[@"obj"] class]);
[weakSelf.dataArray setArray:dic[@"obj"]];
// weakSelf.dataArray = [dic[@"obj"] mutableCopy];
if (weakSelf.dataArray.count > 0) {
}else{
[weakSelf defultWithMyGroup:weakSelf.dataArray];
}
}else{
[weakSelf defultWithMyGroup:nil];
}
[weakSelf.tableView reloadData];
[weakSelf.tableView headerEndRefreshing];
[HUD hide:YES];

} failed:^(NSError *error) {
[HUD hide:YES afterDelay:0.5f];
[FZoneUtility showMessage:messageServerNoResponse target:weakSelf];
[weakSelf.tableView headerEndRefreshing];
[weakSelf defultWithMyGroup:weakSelf.dataArray];
}];
}

这个方法有问题导致我控制器一直释放不了!!!求指导!
2018 次点击
所在节点    iDev
2 条回复
expkzb
2015-10-14 15:18:25 +08:00
是不是单例的问题
siroccoicode
2015-10-15 01:45:53 +08:00
[FZoneHttpsOnServers sharedInstance]这个对象是不是持有该 block 的强引用?如果有的话,那确实会引起循环引用。你需要使用_weak FZoneHttpsOnServers * instance=[FZoneHttpsOnServers sharedInstance];而不是直接使用那个单例。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/227922

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX