Контроллер My view отображает WKWebView. Я установил обработчик сообщений, классную функцию веб-кита, которая позволяет моему коду получать уведомления изнутри веб-страницы:
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) {
// ...
}
До сих пор так хорошо, но теперь я обнаружил, что мой контроллер представления протекает - когда он должен быть освобожден, это не так:
deinit {
println("dealloc") // never called
}
Похоже, что просто установка себя как обработчика сообщений вызывает цикл сохранения и, следовательно, утечку!