У меня есть BehaviorSubject
с именем createObservable
в моей модели. И мой контроллер просмотра подписывается.rxswift ошибка ручки проблема
viewModel!.createObservable.subscribe(onNext: {[unowned self] (obj:PassbookModelType?) -> Void in
if let _ = obj{
self.dismissVC()
}
}, onError: { (error) -> Void in
print(error)
}).addDisposableTo(self.dispose)
У меня есть функция с именем saveObject()
также в модели представления. Если я нажму на правый пункт навигационной панели, он будет испущен. И ошибка будет отправлена на наблюдателя createObservable
.
func saveObject(){
```````
```````
if condition {
createObservable.on(Event.Next(model))
createObservable.onCompleted()
}else{
createObservable.onError(MyError.someError)
}
}
Проблема заключается в том, что если ошибка происходит createObservable будет закрыт, поэтому я не буду получать какое-либо Next
события в будущем. Я попытался использовать retry()
, но, похоже, это вызовет тупик, контроллер просмотра больше не сможет ответить на какое-либо событие касания. Так может кто-нибудь сказать мне, как решить эту проблему? Большое спасибо
viewModel!.createObservable.retry().subscribe(onNext: {[unowned self] (obj:PassbookModelType?) -> Void in
if let _ = obj{
self.dismissVC()
}
}, onError: { (error) -> Void in
print(error)
}).addDisposableTo(self.dispose)