1
는이 같은 2 가지 방법을 보내고 있습니다. 그래서 저는 이것이 FlatMap으로 할 수있는 것이라고 생각했습니다. 그러나 나는 이것들을 연결하는 방법을 알 수 없다. 내가 좋아하는 시도RXSwift flatMap 두 가지 방법
은 다음과 같습니다 두 가지 방법이 Observables은 반환되기 때문에
Cannot convert return expression of type 'Observable<AnyObject?>' (aka 'Observable<Optional<AnyObject>>') to return type 'Observable<[Tonic]>' (aka 'Observable<Array<Tonic>>')
내가 문제를 볼 수 없습니다 : 그것은 반환 TonicAdapter의 라인에 날이 오류를 제공
self.remoteService.rxGetAllTonicsForLanguage(language)
.subscribeOn(ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Background))
.flatMap{tonics -> Observable<[Tonic]> in
print("Tonics: \(tonics)")
let x = tonics as! [Tonic]
return TonicAdapter.sharedInstance.saveTonics(x)
}.observeOn(MainScheduler.instance)
.subscribe({ e in
switch e {
case .Next(let element):
if let result = element as? String {
DDLogDebug("Saved something \(result)")
}
case .Error(let e):
DDLogError("Error in save tonics \(e)")
case .Completed:
DDLogDebug("Completed save tonics")
}
}
).addDisposableTo(self.disposeBag)
?
'saveTonics'에 선언 된 리턴 타입을'Observable'에서'Observable <[Tonic]>'으로 변경해야합니다. 또는 동일한 변경 사항을 전송할 수 있습니다 (항상 그렇다고 확신하는 경우). –
Putz1103
정말 고마워요. 나는 코드에 너무 빠져서 내가 쓴 것을 보지 못했다 :-). – user1007522