【发布时间】:2019-06-05 19:53:19
【问题描述】:
最近在我们的应用程序中遇到了崩溃:
EXC_BREAKPOINT 0x00000001c5c8986c
static URLRequest._unconditionallyBridgeFromObjectiveC(_:)
它来自一个 webView 决定我们访问请求属性的策略:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
let req = navigationAction.sourceFrame.request
}
我相信问题出在 swift lib 的这一行: https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/URLRequest.swift#L298
这里没有保护,而且在 objc 方面似乎请求可能为零。
我的问题是关于如何绕过 objc 来快速桥接。 KVC 会避免这种情况吗?
if let req = navigationAction.sourceFrame.value(forKey: "request") as NSURLRequest {
//do stuff
}
如果没有办法绕过 objc 来快速桥接它是我们将不得不忍受的崩溃?它发生的频率并不高,但足以让我们愿意修复。
【问题讨论】:
标签: ios objective-c swift objective-c-swift-bridge