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

时间:2015-12-22 22:12:44

标签: swift uiprogressview addobserver

我在查看名为“myBrowser”的viewController时遇到问题。我有一个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被解除分配,而键值观察者仍然注册了它”...我试过在viewDillDisapar中放入removeObserver,在viewWillDisappear但是如果我在progressView栏之前按下按钮我的应用程序仍会崩溃完全装满了。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:10)

deinit方法

中删除观察者
deinit {
    webView!.removeObserver(self, forKeyPath: "estimatedProgress")
}