格尔茨,当获得EXC_BAD_ACCESS加载视图(MBProgressHUD + ASIHTTPRequest)
目前我有我的mainViewController管理“加载”屏幕问题(用户访问的第一个观点。)所以基本上第一个视图下载图像并把它放在一个UIImageView上。发生这种情况时,会显示MBProgressHUD。现在,用户使用自己的控制器进入第二个视图。用户上传图像并返回。当用户返回mainView时,mainView将被重新加载,因此不会显示与之前相同的图像。因此在逻辑上,“加载”MBProgressHUD应该也会显示。尽管如此,它甚至可以让它显示之前崩溃,它在转换时崩溃。
事情是错误exc_bad_access只有当我有MBProgressHUD实现(必须是内存管理的问题,但我似乎并没有得到它......)这些是有问题的代码段:
mainViewController.m
- (void)viewDidLoad {
HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"Please Wait";
[HUD showWhileExecuting:@selector(loadingOfImageAndInformation) onTarget:self withObject:nil animated:YES];
[super viewDidLoad];
}
- (void) loadingOfImageAndInformation {
// [...] get URL and blabla.
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:imageURL];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestLoadDone:)];
[request setDidFailSelector:@selector(requestLoadWentWrong:)];
[request setDownloadProgressDelegate:HUD];
[request startAsynchronous];
}
- (void)hudWasHidden {
// Remove HUD from screen when the HUD was hidded
[HUD removeFromSuperview];
[HUD release];
// HUD = nil; I tried this because I found it on another
// answer in S.O. but it didn't quite work.
// I don't think it is the same case.
// I also tried putting this on the dealloc method and
// the didReceiveMemoryWarning to no avail...
}
这是治疗类似的问题,但并没有真正解决我的其他question。
非常感谢您的未来帮助!
如果你需要构建堆栈让我知道。 – Joze 2011-02-11 14:09:59
HUD是保留财产吗? – 2011-02-11 16:15:53