Swift 午睡和 NSURLSession

Swift Siesta and NSURLSession

寻找一种仍然使用 NSURLSession 但将 siestaNetworkingProvider 实现覆盖到 return 我自己的 NetworkingProvider 的方法。但是这似乎是不可能的,因为您不能覆盖协议扩展。

您无法覆盖在创建服务时为 networking: 参数传递 NSURLSession 时发生的情况 — 但这只是一种方便。

您可以直接传递您的自定义网络提供商:

struct MyFancyProvider: NetworkingProvider {
  let session: NSURLSession
  // ...
}

Service(baseURL: "http://whatever", networking: MyFancyProvider(...))

(之所以有效,是因为 NetworkingProvider 本身实现了 NetworkingProviderConvertible。)