我有一个基于导航的应用程序,我在我的应用程序中使用疯狂的MBProgressHud。当它出现时我转换为ARC,我经历了很多应用程序崩溃,我无法理解为什么。我开始使用分析仪工具,看到我的记忆消耗是通过屋顶。我进入了所有的视图控制器并重载了他们的dealloc方法,包括写出NSLog来告诉我它们是否被释放。令我惊讶的是,没有使用MBProgressHUD的ViewControllers被解除分配。
我这样叫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];
答案 0 :(得分:2)
完成MBProgressHUD后,你需要通过将委托设置为Nil来清理HUD,从superview中移除并最终将HUD设置为nil。
HUD.delegate = nil;
[HUD removeFromSuperview];
HUD=nil;