RxSwift Создание наблюдаемого на основе переменной

Я пытаюсь построить Observable, который будет выводить значение, основанное на значении переменной.

Что-то вроде того:

let fullName = Variable<String>("") let isFullNameOKObs: Observable<Bool> isFullNameOKObs = fullName .asObservable() .map { (val) -> Bool in // here business code to determine if the fullName is 'OK' let ok = val.characters.count >= 3 return ok } 

К сожалению, блок на карте func никогда не называется!

Причина этого в том, что:

  1. Переменная fullName привязывается к UITextField с двунаправленным оператором <->, как определено в примере RxSwift.
  2. Наблюдается, что isFullNameOKObs Observable будет скрывать или отображать кнопку отправки моего ViewController.

Любая помощь будет принята с благодарностью.

благодаря

Модель

 class Model { let fullName = Variable<String>("") let isFullNameOKObs: Observable<Bool> let disposeBag = DisposeBag() init(){ isFullNameOKObs = fullName .asObservable() .debug("isFullNameOKObs") .map { (val) -> Bool in let ok = val.characters.count >= 3 return ok } .debug("isFullNameOKObs") isRegFormOKObs = Observable.combineLatest( isFullNameOKObs, is...OK, ... ) { $0 && $1 && ... } isRegFormOKObs .debug("isRegFormOKObs") .asObservable() .subscribe { (event) in // update the OK button } // removing this disposedBy resolved the problem //.disposed(by: DisposeBag()) } } 

ViewController:

 func bindModel() -> Void { _ = txFullName.rx.textInput <-> model!.fullName ...... } 

One Solution collect form web for “RxSwift Создание наблюдаемого на основе переменной”

Вам нужна двусторонняя привязка между UITextField и вашей Variable ?

Если нет, я бы предложил вам просто использовать bindTo() а именно: myTextField.rx.text.orEmpty.bindTo(fullName).disposed(by: disposeBag)

  • Как правильно обрабатывать одноразовые объекты в проекте с помощью RxSwift?
  • Как протестировать combLatest, наблюдаемый с помощью RxTest?
  • Управление несколькими добавлениями с помощью ReactiveX (на iOS с Swift и Alamofire)
  • Преобразование методов UIApplicationDelegate в RxSwift Observables
  • Объединение Alamofire и RxSwift
  • Связывание двух кадров / позиций UIview с использованием Rxswift
  • Переход к реализации вместо созданного интерфейса в Xcode с Swift
  • MVVM и RxSwift для экрана поиска
  • проблема с наличием rx.tap для UIButton в UICollectionViewCell - RxSwift 3
  • RXSwift Zip оператор N элементов через перечислимый
  • RXSwift Как создать оболочку для метода делегата с возвращаемым значением
  • RxSwift, как я могу связывать различные наблюдаемые
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.