我有一个在后台队列中运行的NSURLSession.我将我的NSURLProtocol子类添加到NSURLsessionConfiguration.protocolClases但是覆盖类func canInitWithRequest(request:NSURLRequest) – >布尔永远不会被召唤.
这就是我添加NSURLProtocol的方式
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.protocolClasses!.append(MockNetwork) urlSession = NSURLSession(configuration: configuration,delegate: self,delegateQueue: operationQueue)
此外,我尝试使用不在后台运行的会话,但也没有工作:
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.protocolClasses!.append(MockNetwork) urlSession = NSURLSession(configuration: configuration)
由于这不起作用我只是尝试:
urlSession = NSURLSession.sharedSession()
并在我的AppDelegate中调用它
NSURLProtocol.registerClass(MockNetwork)
这确实有用,我做错了什么?!
花了几个小时试图找出为什么这不起作用我找到了做的方法.
代替:
configuration.protocolClasses?.append(MockNetwork.self)
做:
var protocolClasses = [AnyClass]() protocolClasses.append(MockNetwork.self) let configuration = URLSessionConfiguration.default configuration.protocolClasses = protocolClasses
在那之后,所有工作都有效,而不是URLProtocol.registerClass(MockNetwork.self)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。