我有一个简单的 ViewModel:
struct ViewModel {
var someText = Variable<String>("")
func foo() -> Observable<String> {
return someText.asObservable()
}
}
在 ViewController 中,viewModel 是实例变量,someTextField 是一个 IBOutlet 连接正确的 UITextField
var viewModel = ViewModel()
@IBOutlet weak var someTextField: UITextField!
然后在 ViewController 的 viewDidLoad() 中,我进行了设置并执行以下操作:
someTextField.rx.text.map { $0 ?? "" }.bind(to: viewModel.someText)
let disposeBag = DisposeBag()
let observable = viewMode.foo()
observable.subscribe(onNext: { data in
print(data)
}, onError: { error in
print(error)
}, onCompleted: {
print ("complete")
}, onDisposed: {
print("disposed")
}).disposed(by: disposeBag)
当我在文本字段中输入字符时,我希望 print() 打印出这些字符。但是 print() 仅在调试器中调用一次(而不是随后在文本字段接收输入时)
怎么了?