Ios swift 4中的RxSwift,将数据绑定到tableview
我在尝试遵循MVVM模式和RxSwift的介绍时遇到了一个问题 大约到一半时,他将数据源(cars)绑定到tableView。这是我在swift 4中无法找到的部分 我正在使用以下播客:Ios swift 4中的RxSwift,将数据绑定到tableview,ios,uitableview,swift4,xcode9,rx-swift,Ios,Uitableview,Swift4,Xcode9,Rx Swift,我在尝试遵循MVVM模式和RxSwift的介绍时遇到了一个问题 大约到一半时,他将数据源(cars)绑定到tableView。这是我在swift 4中无法找到的部分 我正在使用以下播客: pod 'RxSwift', '4.0.0-beta.0' pod 'RxCocoa', '4.0.0-beta.0' 这是我尝试过的代码,错误是我得到的(认为在图片上更容易看到): 我已经查看了所有其他问题,其中提到了解决此问题的方法: 但似乎无法与swift 4版本配合使用。 希望你们能帮助我:)这
pod 'RxSwift', '4.0.0-beta.0'
pod 'RxCocoa', '4.0.0-beta.0'
这是我尝试过的代码,错误是我得到的(认为在图片上更容易看到):
我已经查看了所有其他问题,其中提到了解决此问题的方法:但似乎无法与swift 4版本配合使用。
希望你们能帮助我:)这个错误消息有误导性。问题在于初始化
cars
属性的方式。您的汽车
变量
包装了一个可选类型。不能将其绑定到表视图
将初始化更改为以下行,一切正常:
var cars = Variable((UIApplication.shared.delegate as! AppDelegate).cars)
顺便说一下,您不必将cars
数组包装在变量中,您可以将其保留为数组:
let cars = (UIApplication.shared.delegate as! AppDelegate).cars
然后使用Observable.of()将其绑定到表视图:
Observable.of(cars).bind(to: tableView.rx.items(cellIdentifier: "CarCell", cellType: CarTableViewCell.self)) { (_, carViewModel: CarViewModel, cell) in
cell.carViewModel = carViewModel
}.addDisposableTo(disposeBag)