Tôi vừa tải xuống báo cáo sự cố cho một trong các ứng dụng iPhone của mình từ iTunes Connect. Tai nạn phổ biến nhất có dấu vết như sau:EXC_BAD_ACCESS trong 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
Tôi chắc chắn 80% đây là vấn đề bên trong UIWebView và ngoài phạm vi những gì tôi có thể giải quyết. Có ai có bất kỳ đề xuất nào về cách thu hẹp vấn đề này để giúp xác định xem đó có phải là sự cố với HĐH và UIWebView hay vấn đề mà tôi có thể khắc phục và giải quyết trong mã của mình không? Cảm ơn trước.
CẬP NHẬT: UIWebView được đề cập nằm trong chế độ xem được phát hành khi người dùng nhấn vào nút quay lại của bộ điều khiển điều hướng tương ứng. Các giải pháp được chấp nhận dường như cung cấp một lời giải thích tốt cho lý do tại sao lỗi này xảy ra.
Trước khi giải pháp đề nghị:
- (void)dealloc {
[webView release];
[super dealloc];
}
Sau giải pháp đề nghị:
- (void)dealloc {
webView.delegate = nil;
[webView stopLoading];
[webView release];
[super dealloc];
}
Tôi sẽ bỏ tiền cho một đại biểu được phát hành là nguyên nhân của việc này. –
veyr hữu ích, cảm ơn. –
Đây chính xác là những gì đang xảy ra với tôi, phân tích tuyệt vời. –