ios – 快速4中的RxSwift,将数据绑定到tableview

我试图按照MVVM模式和Rx Swift的介绍来解决问题.

大约一半,他将数据源(汽车)绑定到tableView.这是我似乎无法在swift 4中工作的部分.

我正在使用以下pods:

pod 'RxSwift','4.0.0-beta.0'
pod 'RxCocoa','4.0.0-beta.0'

这是我尝试过的错误即可获得的代码(想想在图片上更容易看到):

enter image description here

我已经看过所有其他问题,提到了解决此问题的方法
RxSwift,RxCocoa and UITableview
Cannot set bind(to: UITableView) with RxSwift Variable asObservable()

但似乎无法使其与swift 4版本一起使用.
希望你们能帮助我:)

解决方法

错误消息具有误导性.问题在于您初始化汽车财产的方式.您的汽车变量包装可选类型.您无法将其绑定到表视图.

将初始化更改为以下行,一切正常:

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)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...