Alp*_*lpo 4 uitableview ios rx-swift swift4 xcode9
我试图按照MVVM模式和RxSwift的介绍来解决问题.
大约一半,他将数据源(汽车)绑定到tableView.这是我似乎无法在swift 4中工作的部分.
我正在使用以下pods:
pod 'RxSwift', '4.0.0-beta.0'
pod 'RxCocoa', '4.0.0-beta.0'
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的错误即可获得的代码(想想在图片上更容易看到):
我已经查看了所有其他提出修复的问题:
RxSwift,RxCocoa和UITableview
无法使用RxSwift变量asObservable()设置bind(to:UITableView)
但似乎无法使其与swift 4版本一起使用.希望你们能帮助我:)
错误消息具有误导性.问题在于您初始化cars
财产的方式.你的cars
Variable
包装是一个可选类型.您无法将其绑定到表视图.
将初始化更改为以下行,一切正常:
var cars = Variable((UIApplication.shared.delegate as! AppDelegate).cars)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您不必将cars
数组包装在一个数组中Variable
,您可以将其保留为数组:
let cars = (UIApplication.shared.delegate as! AppDelegate).cars
Run Code Online (Sandbox Code Playgroud)
然后使用Observable.of()将其绑定到表视图:
Observable.of(cars).bind(to: tableView.rx.items(cellIdentifier: "CarCell", cellType: CarTableViewCell.self)) { (_, carViewModel: CarViewModel, cell) in
cell.carViewModel = carViewModel
}.addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8156 次 |
最近记录: |