我正在使用 UIWebView,它会在单击按钮时弹出警报(来自 javascript)。还有另一个按钮(在本机端),它关闭控制器,所以也释放 UIWebView。
问题是,如果我触摸 UIWebView 中的按钮,并在填充警报之前触摸关闭按钮,我的控制器和 UIWebView 将被释放,但警报仍保留在屏幕上。然后,如果我单击警报上的任何按钮,应用程序将崩溃并给出以下错误:
[UIWebView modalView:didDismissWithButtonIndex:]: message sent to deallocated instance
并且这个方法是从私有方法中调用的
[UIModalView(Private) _popoutAnimationDidStop:finished:]
我正在使用ARC,我的dealloc是这样的:
- (void)dealloc {
[_myWebView stopLoading];
_myWebView.delegate = nil;
_myWebView = nil;
}
但这并不能解决我的问题,因为我认为 UIModalView 将我的 webview 引用为委托,并且我无法将其设置为 nil,因为它是私有的。
我该如何解决?
问候