ios - Zombie UIWebView 在从 javascript 调用 alert() 后立即解除分配

标签 ios objective-c uiwebview nszombie

我使用的是 UIWebView,它会在单击按钮时弹出警报(来自 javascript)。还有另一个按钮(在 native 端),它关闭 Controller ,因此 deallocs 也 UIWebView。

问题是,如果我触摸 UIWebView 中的按钮,并在填充警报之前触摸关闭按钮,我的 Controller 和 UIWebView 将被释放,但警报仍保留在屏幕上。然后,如果我在警报上单击任何按钮,应用程序就会崩溃并给出以下错误:

[UIWebView modalView:didDismissWithButtonIndex:]: message sent to deallocated instance

这个方法是从私有(private)方法调用的

[UIModalView(Private) _popoutAnimationDidStop:finished:]

我正在使用 ARC,我的 dealloc 是这样的:

- (void)dealloc {
    [_myWebView stopLoading];
    _myWebView.delegate = nil;
    _myWebView = nil;
}

但这并没有解决我的问题,因为我认为 UIModalView 有一个对我的 webview 的引用作为委托(delegate),我不能将它设置为 nil,因为它是私有(private)的。

我该如何解决?

问候

最佳答案

在解除分配 UIWebView 之前,找到一种方法将 UIAlertView 上的委托(delegate)设置为 nil。

关于ios - Zombie UIWebView 在从 javascript 调用 alert() 后立即解除分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900137/

相关文章:

ios - titleLable.text 不工作

ios - 我应该如何将单个项目添加到核心数据? insertIntoManagedContext 或 insertNewObjectForEntityForName?

ios - 在第三方应用程序之间共享数据

ios - 如何在sqlite数据库的表行中添加NSDictionary

ios - Cookie 不会让用户在 swift 3 中保持登录状态

ios - 如何使用openCV检测实时摄像机中的移动物体

ios - 快速滚动时自定义标题内容动画

iphone - 如何用逗号格式化货币字符串?

ios - 防止 Tab Bar 切断 WKWebView 文本

ios - 将 pdf 页面加载到 UIWebView 中