2017-08-15 88 views
0

我在我的应用程序中使用了MBProgressHUD。我总是收到崩溃日志关于它的崩溃报告系统,就像是MBProgressHUD crash [MBProgressHUD done]

Cloudoc-Patient -[MBProgressHUD done] (MBProgressHUD.m:376) 
1devices 
App Version: - 
Thread 0 Crashed: 
0 libobjc.A.dylib 0x197350000 + 113616 
1 Cloudoc-Patient -[MBProgressHUD done] (MBProgressHUD.m:376) 
2 UIKit 0x18a0f0000 + 295108 
3 UIKit 0x18a0f0000 + 294860 
4 QuartzCore 0x189a2c000 + 87596 
5 libdispatch.dylib 0x1979d4000 + 6484 
6 libdispatch.dylib 0x1979d4000 + 25100 
7 CoreFoundation 0x18555c000 + 914756 
8 CoreFoundation 0x18555c000 + 906732 
9 CoreFoundation 0x18555c000 + 36724 
10 GraphicsServices 0x18efb4000 + 46844 
11 UIKit 0x18a0f0000 + 486804 
12 Cloudoc-Patient main (main.m:23) 
13 libdyld.dylib 0x197a00000 + 10760 

在Xcode - >管理 - >崩溃,定位代码后,会这样crash code 我使用它,就像那在UIViewController类别

- (void)showLoadingHUD { 
if(!self.view) 
{ 
    return; 
} 
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
hud.removeFromSuperViewOnHide = YES; 
hud.mode = MBProgressHUDModeIndeterminate; 
} 
- (void)hideHUD { 
if(!self.view) 
{ 
    return; 
} 
[MBProgressHUD hideAllHUDsForView:self.view animated:NO]; 
} 

任何人都可以帮我吗?使用

+0

尝试设置异常断点,并运行应用程序。当应用程序在断点处停止时,检查所有与进度hud视图相关的所有信息仍然存在。 –

+0

解除分配的实例,你仍然试图调用progresshud的方法?只是一个猜测 – Joshua

+0

@ Joshua,你的意思是异常类型是'EXC_BAD_ACCESS',progresshud实例已经被释放,我仍然可以访问它? – JsonKit

回答

0

我的方式:

@property (strong, nonatomic) MBProgressHUD *hud; 

然后

#pragma mark - DataManager - 
- (void)getData { 

if (![self.hud isHidden]) { 
    [self.hud hideAnimated:YES]; 
} 
self.hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 

[XXXDataManager xxxWithRequestModel:self.xxxRequestModel completion:^(BOOL success, id _Nullable result, NSError * _Nullable error) { 

    [self.hud hideAnimated:YES]; 

    if (success) { 
     ... 
    } 
    else { 
     ... 
    } 
}];} 
+0

感谢您的回答。我认为,当hud被添加到self.view时,它已被自我强烈地引用(因为自我强烈地指向视图)。为什么你指的是一个强大的财产hud? – JsonKit