Свифт Сиеста и NSURLSession

Ищите способ по-прежнему использовать NSURLSession, но переопределите реализацию siestaNetworkingProvider, чтобы вернуть мой собственный NetworkingProvider. Однако это кажется невозможным, поскольку вы не можете переопределить расширения протокола.

1 ответ

Решение

Вы не можете переопределить то, что происходит, когда вы передаете NSURLSession для networking: параметр при создании службы - но это все равно только удобство.

Вы можете передать свой пользовательский сетевой провайдер напрямую:

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

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

(Это работает, потому что NetworkingProvider сам реализует NetworkingProviderConvertible.)

Другие вопросы по тегам