objective-c – 应用程序在弹出NavigationController时崩溃!
以下是我从客户端发送的崩溃日志中复制/粘贴的内容.我无法理解这是什么意思:s
显然,当导航回到之前的屏幕时,应用程序崩溃了(这就是客户报告的内容).什么是UIWebDocumentView? 我需要解决崩溃,但我被困在这里所以任何帮助都非常感谢. 附:我正在使用iphone sdk 3.0. Date/Time: 2009-09-29 18:16:28.458 -0400 OS Version: iPhone OS 3.0 (7A341) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0xbbadbeef Crashed Thread: 4 Thread 4 Crashed: 0 WebCore 0x3588dd74 __ZL17_WebTryThreadLockb + 288 1 WebCore 0x3588e4c0 __ZL18_WebThreadAutoLockv + 52 2 UIKit 0x30aea484 -[UIWebDocumentView _responderForBecomeFirstResponder] + 8 3 UIKit 0x30978b34 -[UINavigationTransitionView transition:fromView:toView:] + 200 4 UIKit 0x30978a54 -[UINavigationTransitionView transition:toView:] + 24 5 UIKit 0x30974470 -[UINavigationController _startTransition:fromViewController:toViewController:] + 1604 6 UIKit 0x30973d90 -[UINavigationController _startDeferredTransitionIfNeeded] + 256 7 UIKit 0x309a7468 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 400 8 UIKit 0x309a72c8 -[UINavigationController popViewControllerAnimated:] + 32 9 Snocell 0x0002ae00 0x1000 + 171520 10 Foundation 0x30554062 -[NSThread main] + 42 11 Foundation 0x305023f2 __NSThread__main__ + 852 12 libSystem.B.dylib 0x31d705a0 _pthread_body + 20 解决方法
好吧,我想我找到了解决方案.分享它以防其他人陷入相同的情况:
EXC_BAD_ACCESS(SIGSEGV)KERN_INVALID_ADDRESS表示您正在引用的虚拟地址不在页表中,或者您没有访问权限.这是一个您不允许访问的虚拟地址.对于您的示例地址地址0x67696c69,可能这不是指针被视为指针;或者包含指针的数据结构是免费的,并用其他数据覆盖. 然后,我在日志中的堆栈跟踪中看到WebCore(WebCore是iPhone WebKit中的一个组件 – http://en.wikipedia.org/wiki/WebKit#Components) 所以,我在这里做的是,在UIWebView中丢弃一个网站,然后才能完全加载,弹出回到以前的视图控制器并且它崩溃了. 我发现UIWebView需要在释放它之前清除它的委托;否则,如果在您释放UIWebView后Web请求完成,它会尝试回调该委托并导致应用程序崩溃. 解决方案:我在弹出视图控制器之前添加了以下代码,它现在正在运行:) if (webView.loading) [webView stopLoading]; webView.delegate = nil; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |