2017-08-15 128 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