gpt4 book ai didi

ios - [_UIWebViewScrollViewDelegateForwarder scrollViewWasRemoved :]: unrecognized selector sent to instance

转载 作者:行者123 更新时间:2023-12-01 16:41:20 25 4
gpt4 key购买 nike

我有一个非常奇怪的错误,我找不到问题。

在我的 iPad 应用程序中,我有一个 UINavigationController、一个作为主控的 UITableViewController 和一个包含作为详细信息的 UIWebView 的 UIViewController。

我启动 APP,显示 UITableViewController。通过segue,我像往常一样打开细节。然后我的 detailviewcontroller 中有一个调用此方法的后退按钮

[self.contentWebView setDelegate:nil];
[self.contentWebView stopLoading];
[self.navigationController popViewControllerAnimated:YES];

它被弹出并再次显示主人。它的
- (void)viewWillAppear:(BOOL)animated

被调用,但随后出现以下错误:
2014-06-06 15:56:58.156 Knowledge[356:60b] -[_UIWebViewScrollViewDelegateForwarder scrollViewWasRemoved:]: unrecognized selector sent to instance 0x170429f60
2014-06-06 15:56:58.159 Knowledge[356:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UIWebViewScrollViewDelegateForwarder scrollViewWasRemoved:]: unrecognized selector sent to instance 0x170429f60'
*** First throw call stack:
(0x189582f50 [...] 0x196553aa0)
libc++abi.dylib: terminating with uncaught exception of type NSException

但是,这仅发生在 iPad Air 上……旧版 iPad 按预期工作

更新:
我现在添加了命令 [self.contentWebView removeFromSuperview]; 在“stopLoading”之后,现在错误就在那里发生了。

最佳答案

请忽略这个答案如果您没有触摸 ScrollView 的(Web View )委托(delegate)引用。

我面临着同样的奇怪错误。经过一番调查,我发现这是因为 ScrollView 的(Web View 的)委托(delegate)在 Controller 的 viewDidLoad 中被更改了。方法:

[self webView].scrollView.delegate = self;

在某些情况下,即使您的 View Controller 被销毁, ScrollView 也会调用委托(delegate)方法。 weak 应该防止这种情况发生。委托(delegate)引用,但出于某种原因, ScrollView 无论如何都会在已释放(僵尸)对象上调用委托(delegate)方法。我认为这是框架中的一个错误。

所以在这里你可以做什么:将委托(delegate)引用设置为 nil在您的 Controller 的 dealloc方法:
- (void)dealloc
{
[self webView].scrollView.delegate = nil;
}

释放后,将阻止 ScrollView 调用不再存在的 Controller 上的任何方法。

关于ios - [_UIWebViewScrollViewDelegateForwarder scrollViewWasRemoved :]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24083657/

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