WKNavigationDelegate 仅在设置为 self 时有效

WKNavigationDelegate only works if set to self

我正在编写一个 Swift 混合应用程序,我需要能够知道我的 WKWebView 何时完成加载请求。我正在尝试使用 WKNavigationDelegate 来实现这一点。但是,我可以触发事件的唯一方法是这样设置:

webView.navigationDelegate = self

问题是我有一些数据需要与我的请求相关联,所以我创建了一个自定义 class 来实现 WKNavigationDelegate,如下所示:

class MyNavigationDelegate : NSObject, WKNavigationDelegate {
    init(...) {
        //set local variables with passed args
    }

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {        
        println("finished loading")
    }
}

然后我这样分配它:

webView.navigationDelegate = MyNavigationDelegate(my, arguments, here)
webView.loadRequest(...)

页面正在加载,所以我的加载方式没有问题。我错过了什么?

委托是一个弱 属性,因此请确保您在别处保留委托 class 实例——它可能在使用之前就已被释放。同时,self 没有被释放,所以它正在工作。