RxSwiftwrapを使用するネットワーク クライアントがあるとしますURLSession。
ステートメントを使用してエラーを返したいのguardですが、エラーが発生しています
非 void 関数は値を返す必要があります
これは理にかなっていますが、 でこれを処理する方法がわかりませんRxSwift。
class NetworkClient {
var task: URLSessionDataTask = URLSessionDataTask()
var session: SessionProtocol = URLSession.shared
var request: URLRequest?
func call<T: Codable>(_ request: URLRequest) -> Single<T> {
return Single<T>.create(subscribe: { [weak self] observer -> Disposable in
guard let `self` = self else { observer(.error(NSError(domain: "", code: 0, userInfo: [:]))); return }
self.task = self.session.dataTask(with: request, completionHandler: { data, response, error in
})
return Disposables.create {
self.task.cancel()
}
})
}
}