Я использую MBProgressHUB, с изменениями найденного кода здесь .
Несколько слов о моем коде:
- Код в моем приложении Делегат
- Ряд других классов называют это
- Я использую его с асинхронным NSURLConnection
- Я не объявляю это: @property (nonatomic, retain) MBProgressHUD * HUD;
- Я не : @synthesize HUD;
- (и, конечно, я не освобождаю его в моем dealloc)
Я использую его следующим образом:
- (void)setSearchingMode:(BOOL)isSearching {
// when network action, toggle network indicator and activity indicator
if (isSearching) {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
UIWindow *theWindow = [UIApplication sharedApplication].keyWindow;
HUD = [[MBProgressHUD alloc] initWithWindow:theWindow];
[theWindow addSubview:HUD];
//HUD.labelText = @"Connecting";
[HUD show:YES];
} else {
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[HUD hide:YES];
[HUD removeFromSuperview];
[HUD release];
}
}
- (void)setSearchingText:(NSString *)whatToSay {
HUD.labelText = whatToSay;
}
Я вполне уверен, что код где-то вызывает проблемы с управлением памятью. В моем журнале аварий я получаю:
Тип исключения: EXC_BAD_ACCESS (SIGBUS)
Коды исключений: KERN_PROTECTION_FAILURE в 0x0000000c
0 libobjc.A.dylib 0x000027d8 objc_msgSend + 16
1 My 0x00003120 - [MyAppDelegate setSearchingMode:] (MyAppDelegate.m: 363)
2 My 0x00003458 - [MyAppDelegate connectionDidFinishLoading:] (MyAppDelegate.m: 341)
3 Foundation 0x00032896 - [NSURLConnection (NSURLConnectionReallyInternal) sendDidFinishLoading] + 62
4 Foundation 0x00032818 _NSURLConnectionDidFinishLoading + 72
в связи с загрузкой DidFinish я звоню:
[self setSearchingMode:NO];
Я пытался сделать это, создавая свойства доступа для HUD, но не смог обойти строку "[MBProgressHUD alloc] initWithWindow" - и я не хочу продолжать выделять ивару!
Спасибо, если кто-нибудь может указать мне лучшее направление здесь ..