ios - 绑定(bind) UITextField 来查看模型变量

标签 ios swift swiftbond

我正在尝试使用 Bond 将 UI 元素绑定(bind)到我的 View 模型。当我尝试将 searchTextField 绑定(bind)到我的 View 模型 searchString 时,Xcode 8.3.3 给出“调用中的参数标签不正确(有 'to:',预期 'signal:')”错误。怎么了?

import UIKit
import Bond
import ReactiveKit

class SearchViewModel {
   let searchString = Observable<String>("")
}

class SearchViewController: UIViewController {

   @IBOutlet weak var searchTextField: UITextField!

   let viewModel = SearchViewModel()

   override func viewDidLoad() {
      super.viewDidLoad()
      bindToViewModel()
   }

   func bindToViewModel() {
      searchTextField.reactive.text.bind(to: viewModel.searchString)
   }
}

最佳答案

问题在于:

let searchString = Observable<String>("")

需要:

let searchString = Observable<String?>("")

因为UITextField: BindableProtocol { public func bind(signal: Signal<String?, NoError>) -> Disposable { return reactive.text.bind(signal: signal) } }正如 3stud1ant3 指出的那样,需要一个可选的。

关于ios - 绑定(bind) UITextField 来查看模型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101077/

相关文章:

ios - 在 TableView Controller iOS swift 中搜索特定记录

ios - 使用 Bond 定期触发一个方法

iphone - 如何设置 View 框架宽度? (为什么不能直接设置?)

ios - RemoveProfile 命令在 iOS MDM 协议(protocol)中不起作用

ios - SQLite 错误 : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, 子代码 = 0x0) -iOS

ios - Xcode 永远显示新项目的索引

Swift:无法在委托(delegate)中获取 URLSession 下载的进度?

Swift - Bond Framework - 一对多绑定(bind)关系

swift - 在 ReactiveKit/Bond 中计算 Observable

ios - 文件所有者混淆 iOS