gpt4 book ai didi

swift - 有没有办法在带有自定义配置的 NSURLSession 中使用 NSURLProtocol?

转载 作者:搜寻专家 更新时间:2023-10-30 22:09:05 26 4
gpt4 key购买 nike

我有一个在后台队列中运行的 NSURLSession。我将我的 NSURLProtocol 子类添加到 NSURLsessionConfiguration.protocolClasesoverride class func canInitWithRequest(request: NSURLRequest) -> Bool 永远不会被调用.

这就是我添加 NSURLProtocol

的方式
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.protocolClasses!.append(MockNetwork)
urlSession = NSURLSession(configuration: configuration, delegate: self, delegateQueue: operationQueue)

我也尝试过不在后台运行的 session 但也没有工作:

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)

关于swift - 有没有办法在带有自定义配置的 NSURLSession 中使用 NSURLProtocol?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com