【发布时间】:2020-07-29 06:11:33
【问题描述】:
所以在从初始化程序返回之前,我得到错误“self.init”没有在所有路径上调用。虽然我对这可能是什么感到困惑,因为我在初始化 URLComponents 后添加了 self.init(url: url) 以获取要传入的 url。然后使用 URLRequest 属性发出请求。但为什么它仍然给我这个错误?有什么我错过的吗?知道原因会很有帮助。谢谢。
import Foundation
extension URLRequest {
init(service: ServiceProtocol) {
guard let urlComponents = URLComponents(service: service),
let url = urlComponents.url else {
return
}
self.init(url: url)
httpMethod = service.method.rawValue
service.headers?.forEach { key, value in
addValue(value, forHTTPHeaderField: key)
}
guard case let .requestParameters(parameters) = service.task, service.parametersEncoding == .json else {
return
}
httpBody = try? JSONSerialization.data(withJSONObject: parameters)
}
}
【问题讨论】:
标签: ios swift networking initialization network-protocols