URLProtocol未初始化

时间:2017-09-25 21:07:44

标签: swift cocoa nsurlrequest nsurlprotocol

我正在应用中实现一个URLProtocol。

=

虽然import Cocoa class MyURLProtocol: URLProtocol { override init(request: URLRequest, cachedResponse: CachedURLResponse?, client: URLProtocolClient?) { super.init(request: request, cachedResponse: cachedResponse, client: client) } override class func canInit(with request: URLRequest) -> Bool { return true } override class func canonicalRequest(for request: URLRequest) -> URLRequest { return request } override func startLoading() { print("loading") } } 始终返回true,但canInit(with request: URLRequest)init(…)canonicalRequest(…)都不会被调用。

startLoading()

URLProtocol.registerClass中调用MyURLProtocol的{​​{1}}

我不知道该怎么办。昨天,日期代码至少调用了函数。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您使用的是URLSession吗? URLSession绕过正常的协议注册,而是明确配置URLSessionConfiguration中的协议。请参阅URLSessionConfiguration.protocolClasses

答案 1 :(得分:0)

其实我正在开发一个macOS应用程序,而不是iOS应用程序,但是当我从WKWebView更改为WebView时,它解决了这个问题。

感谢Kevin Ballard发表评论。