Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift 4中的RxSwift,将数据绑定到tableview_Ios_Uitableview_Swift4_Xcode9_Rx Swift - Fatal编程技术网

Ios swift 4中的RxSwift,将数据绑定到tableview

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版本配合使用。 希望你们能帮助我:)这

我在尝试遵循MVVM模式和RxSwift的介绍时遇到了一个问题

大约到一半时,他将数据源(cars)绑定到tableView。这是我在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)