相关疑难解决方法(0)

WKWebView导致我的视​​图控制器泄漏

我的视图控制器显示WKWebView.我安装了一个消息处理程序,一个很酷的Web Kit功能,允许从网页内部通知我的代码:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    let url = // ...
    self.wv.loadRequest(NSURLRequest(URL:url))
    self.wv.configuration.userContentController.addScriptMessageHandler(
        self, name: "dummy")
}

func userContentController(userContentController: WKUserContentController,
    didReceiveScriptMessage message: WKScriptMessage) {
        // ...
}
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好,但现在我发现我的视图控制器正在泄漏 - 当它应该被释放时,它不是:

deinit {
    println("dealloc") // never called
}
Run Code Online (Sandbox Code Playgroud)

看起来只是将自己安装为消息处理程序会导致保留周期,从而导致泄漏!

memory-leaks webkit ios ios8 wkwebview

63
推荐指数
4
解决办法
1万
查看次数

标签 统计

ios ×1

ios8 ×1

memory-leaks ×1

webkit ×1

wkwebview ×1