1

我有一个基于导航的应用程序,我在我的应用程序中疯狂地使用 MBProgressHud。当它出现时,我转换为 ARC,我经历了很多应用程序崩溃,我不明白为什么。我开始使用分析工具,发现我的内存消耗已经达到了顶峰。我进入了我所有的视图控制器,并重载了它们的 dealloc 方法,以包括对 NSLog 的写出,以告诉我它们是否正在被释放。令我惊讶的是,没有一个使用 MBProgressHUD 的 ViewController 被释放。

我这样称呼 MBProgressHUD:

HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"Retrieving Signature";
[HUD showWhileExecuting:@selector(getSignature) onTarget:self withObject:nil animated:YES];
4

1 回答 1

2

完成 MBProgressHUD 后,您需要通过将代理设置为 Nil、从超级视图中删除并最后将 HUD 设置为 nil 来清理 HUD。

HUD.delegate = nil;
[HUD removeFromSuperview];
HUD=nil;
于 2013-02-20T19:45:34.887 回答