当前位置:  开发笔记 > 前端 > 正文

UIWebView中的EXC_BAD_ACCESS

如何解决《UIWebView中的EXC_BAD_ACCESS》经验,为你挑选了1个好方法。

我刚从iTunes Connect下载了我的一个iPhone应用程序的崩溃报告.最常见的崩溃有如下所示的痕迹:

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

我大约80%确定这是UIWebView内部的问题,超出了我能解决的范围.有没有人有任何关于如何缩小这个问题的建议,以帮助确定它是OS和UIWebView的问题,还是我可以在我的代码中修复和解决的问题?提前致谢.

更新:有问题的UIWebView在视图中,当用户点击相应导航控制器的后退按钮时,该视图将被释放.已接受的解决方案似乎为此错误发生的原因提供了一个很好的解释.

在建议解决之前:

- (void)dealloc {
    [webView release];

    [super dealloc];
}

建议解决方案后:

- (void)dealloc {
    webView.delegate = nil;
    [webView stopLoading];
    [webView release];

    [super dealloc];
}

Stephen Darl.. 66

场景如下:

    用户进入屏幕UIWebView.作为代表的UIViewController集合self

    网页开始下载

    用户退出屏幕3a.UIViewController被取消分配

    UIWebView 完成加载并向其委托发送"我完成"消息...

UIWebView在解除分配委托之前,您需要停止加载其页面并将其委托设置为nil.



1> Stephen Darl..:

场景如下:

    用户进入屏幕UIWebView.作为代表的UIViewController集合self

    网页开始下载

    用户退出屏幕3a.UIViewController被取消分配

    UIWebView 完成加载并向其委托发送"我完成"消息...

UIWebView在解除分配委托之前,您需要停止加载其页面并将其委托设置为nil.


我会把钱放在一个被释放的代表身上.
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有