RxSwift,RxCocoa和UITableview
我有一个使用RxSwift实现UITableView的问题。
我尝试使用下面的代码将一个模型数组的observable绑定到表项。 models.bind(to: self.tableView.rx.items(cellIdentifier: "Cell", cellType: ModelTableViewCell.self
。
但是当我这样做给我以下错误:inputType 'inout UITableView' does not conform to protocol 'ReactiveCompatible'
,我知道错误不能正确,因为NSObject扩展ReactiveCompatible,所以UITableView也。 另外,我的项目代码与RxSwiftCommunity上显示的示例并没有太大的区别
我创build了一个有错误的小例子项目。
Swift是相当不错的语言,但有时候会发生,编译器无法识别参数的types。 那么你需要显式的定义一个types的参数。 在你的情况下,你需要定义块参数的types,请参阅代码:
func bindRx(viewModel: ViewModel) { viewModel.models.bind(to: tableView.rx.items(cellIdentifier: ModelTableViewCell.ReuseIdentifier, cellType: ModelTableViewCell.self)) { (_, model: Model, cell: ModelTableViewCell) in cell.textLabel?.text = model.name } .addDisposableTo(disposeBag) }