gpt4 book ai didi

iphone - UIWebView EXC_BAD_ACCESS 崩溃

转载 作者:行者123 更新时间:2023-12-03 18:15:38 25 4
gpt4 key购买 nike

我遇到使用 UIWebView 的应用程序崩溃的情况。通常是在页面未完全加载并且 UIWebView 被发送 stopLoading 选择器时发生。或者当 UIWebView 完全加载页面时。我有 EXC_BAD_ACCESS。堆栈看起来像这样:

#0  0x95bb7688 in objc_msgSend
#1 0x30a671db in -[UIWebView webView:decidePolicyForNavigationAction:request:frame:decisionListener:]
#2 0x3024a10d in __invoking___
#3 0x30249ff8 in -[NSInvocation invoke]
#4 0x358ab160 in HandleDelegateSource
#5 0x302452c1 in CFRunLoopRunSpecific
#6 0x30244628 in CFRunLoopRunInMode
#7 0x32044c31 in GSEventRunModal
#8 0x32044cf6 in GSEventRun
#9 0x309021ee in UIApplicationMain
#10 0x0000239c in main at main.m:13

对我来说,最奇怪的事情是发送到 UIWebView 的 webView:decidePolicyForNavigationAction:request:frame:decisionListener: 选择器,因为 UIWebView 文档中没有这样的选择器!仅适用于 Cocoa(不是 cocoa touch)WebView。我怀疑 UIWebView 或其委托(delegate)有问题。但我无法设置断点来观看它们。请告知我在这种情况下如何获取更多信息。

最佳答案

在离开 View 之前,您必须停止加载 webView 并删除委托(delegate):

// ARC (correct solution)
- (void)dealloc {
[_webView setDelegate:nil];
[_webView stopLoading];
}

// non ARC
- (void)dealloc {
[webView setDelegate:nil];
[webView stopLoading];
[webView release];
[super dealloc];
}

// ARC (older solution)
- (void)viewWillUnload {
[webView setDelegate:nil];
[webView stopLoading];
}

Apple 文档的内容是:重要提示 在释放已设置委托(delegate)的 UIWebView 实例之前,必须首先将其委托(delegate)属性设置为 nil。例如,可以在 dealloc 方法中完成此操作。

关于iphone - UIWebView EXC_BAD_ACCESS 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1264727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com