在URLSessionDelegate
的文档中,它说:
您的 URLSession 对象不需要委托。 指定,使用系统提供的委托,并且必须提供 完成回调以获取数据。
我只需要实现这样的方法之一:
class SessionDelegate: NSObject, URLSessionTaskDelegate {
func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
var request = request
request.httpMethod = task.originalRequest?.httpMethod ?? request.httpMethod
completionHandler(request)
}
}
然后像这样初始化我的会话:
self.session = URLSession(configuration: config, delegate: SessionDelegate(), delegateQueue: nil)
这是否覆盖“system提供的委托”中的任何其他行为,以便我没有实现的方法?