Właśnie pobrałem raporty o awariach dla jednej z moich aplikacji na iPhone'a z iTunes Connect. Najczęstszym krach ma ślad tak:EXC_BAD_ACCESS w UIWebView
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xa1b1c1db
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x3030e6f4 objc_msgSend + 16
1 UIKit 0x30ebebee -[UIWebView webView:resource:didFinishLoadingFromDataSource:]
2 UIKit 0x30ebe5ca -[UIWebViewWebViewDelegate webView:resource:didFinishLoadingFromDataSource:]
3 CoreFoundation 0x32b73b5c __invoking___ + 60
4 CoreFoundation 0x32bc67be -[NSInvocation invoke]
5 WebCore 0x320baa86 HandleDelegateSource
6 CoreFoundation 0x32bb8a96 CFRunLoopRunSpecific
7 CoreFoundation 0x32bb8356 CFRunLoopRunInMode
8 GraphicsServices 0x30544cd4 GSEventRunModal
9 GraphicsServices 0x30544d80 GSEventRun
10 UIKit 0x30d2c768 -[UIApplication _run]
11 UIKit 0x30d2b46c UIApplicationMain
jestem około 80% upewnić się, że jest to problem wewnętrzny do UIWebView i poza zakres tego, co mogę zająć. Czy ktoś ma jakieś sugestie, w jaki sposób zawęzić ten problem, aby pomóc określić, czy jest to problem z systemem operacyjnym i UIWebView, czy problem, który mogę naprawić i zaadresować w moim kodzie? Z góry dziękuję.
AKTUALIZACJA: Omawiany UIWebView jest w widoku, który zostaje zwolniony po naciśnięciu przycisku wstecz odpowiedniego kontrolera nawigacyjnego. Przyjęte rozwiązanie wydaje się być dobrym wytłumaczeniem, dlaczego ten błąd występuje.
Przed Sugerowane rozwiązanie:
- (void)dealloc {
[webView release];
[super dealloc];
}
Po Sugerowane rozwiązanie:
- (void)dealloc {
webView.delegate = nil;
[webView stopLoading];
[webView release];
[super dealloc];
}
Wpłacę pieniądze na zwolnionego delegata będącego tego przyczyną. –
veyr pomocne, dzięki. –
To jest dokładnie to, co się ze mną dzieje, doskonała analiza. –