将Objective-C block NSStackBlock转换为Swift 3

将Objective-C block NSStackBlock转换为Swift 3,objective-c,swift3,delegates,wkwebview,rx-swift,Objective C,Swift3,Delegates,Wkwebview,Rx Swift,我正在为一个WKWebView导航代理编写一个被动扩展。此时,我编写了以下代码: public typealias NavigationHttpResponse = (WKWebView, WKNavigationResponse, (WKNavigationResponsePolicy) -> Swift.Void) public var decidePolicyForNavigationResponse: Observable<NavigationHttpResponse>

我正在为一个WKWebView导航代理编写一个被动扩展。此时,我编写了以下代码:

public typealias NavigationHttpResponse = (WKWebView, WKNavigationResponse, (WKNavigationResponsePolicy) -> Swift.Void)
public var decidePolicyForNavigationResponse: Observable<NavigationHttpResponse> {
    let selector = #selector(WKNavigationDelegate.webView(_:decidePolicyFor:decisionHandler:)! as ((WKNavigationDelegate) -> (NavigationHttpResponse) -> ()))
    return delegate.methodInvoked(selector)
        .map { params in
            let webView = params[0] as! WKWebView
            let navigationResponse = params[1] as! WKNavigationResponse
            let decisionHandler = params[2] as! ((WKNavigationResponsePolicy) -> Swift.Void)
            return (webView, navigationResponse, decisionHandler)
    }
}
在DePub控制台中,我得到:

Could not cast value of type '__NSStackBlock__' (0x12327d1a8) to '(__C.WKNavigationResponsePolicy) -> ()' (0x12218b8f0).
我怎样才能安全地从objective-c转换到Swift? 或者我可以采取哪种替代方法

谢谢

Could not cast value of type '__NSStackBlock__' (0x12327d1a8) to '(__C.WKNavigationResponsePolicy) -> ()' (0x12218b8f0).