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