当前位置:  开发笔记 > Android > 正文

Swift类错误WKWebView被解除分配,而键值观察者仍然注册了它

如何解决《Swift类错误WKWebView被解除分配,而键值观察者仍然注册了它》经验,为你挑选了1个好方法。

我从viewController中删除名为"myBrowser"的观察者时遇到问题.我有一个ProgressView栏,这是我添加观察者的代码:

 webView!.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)

在这个控制器中,我有一个按钮,让我回到另一个控制器:

@IBAction func disa(sender: UIBarButtonItem) {

self.navigationController?.popViewControllerAnimated(true)

}

如果我加

webView?.removeObserver(self, forKeyPath: "estimatedProgress")

在disa func中,我的应用程序崩溃,因为"WKWebView被解除分配,而键值观察者仍然注册了它"...我尝试将viewOidDisapper中的removeObserver放在viewWillDisappear中,但是如果我在progressView栏完全加载之前按下按钮我的应用程序仍会崩溃.

我该如何解决这个问题?



1> tesla..:

删除deinit方法中的观察者

deinit {
    webView!.removeObserver(self, forKeyPath: "estimatedProgress")
}


首先,删除所有addObserver语句并从viewDidLoad中保留一个.二,尝试使用:webView!.removeObserver(self,forKeyPath:"estimatedProgress"),注意'webView!' 它是明确解开的,只在deinit()中使用它
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有