Недавно в нашем приложении произошел сбой:
EXC_BREAKPOINT 0x00000001c5c8986c
static URLRequest._unconditionallyBridgeFromObjectiveC(_:)
Он исходит из политики принятия решений в WebView, где мы получаем доступ к свойству запроса:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
let req = navigationAction.sourceFrame.request
}
Я считаю, что проблема в этой строке в быстрой lib:
https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/URLRequest.swift#L298
Здесь нет охранников, и кажется, что на стороне объекта возможно, что запрос равен нулю.
Мой вопрос касается того, как обойти объект на быстром мосту. Будет ли KVC избежать этого?
if let req = navigationAction.sourceFrame.value(forKey: "request") as NSURLRequest {
//do stuff
}
Если нет способа обойти стремительный мост, это крушение, с которым нам придется жить? Это происходит не слишком часто, но достаточно, чтобы мы хотели его исправить.