状況
textFieldをviewModelのプロパティと双方向バインディングしようとすると以下のように怒られました
viewModel.swift
class ViewModel: NSObject {
static var str = Observable("")
}
MyViewController
import UIKit
import Bond
class MyViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
override func viewDidLoad(){
textField.bnd_text.bidirectionalBindTo(viewModel.str)
}
}
エラー文
Cannot invoke 'bidirectionalBindTo' with an argument list of type '(Observable<String>)'
解決方法
viewModelの定義時に、ちゃんと型を合わせてあげれば良いことがわかりました
viewModel.swift
class ViewModel: NSObject {
static var str:Observable<String?> = Observable("")
}
失敗例
以下はやってみて、ダメだったものたちです。
Stringがoptionalなので、Observable<String>?
はだめなんですね
viewModel.swift
static var str:Observable<String> = Observable("")
static var str:Observable<String>? = Observable("")
static var str:Observable<String?> = ""