我试图按照MVVM模式和Rx
Swift的介绍来解决问题.
大约一半,他将数据源(汽车)绑定到tableView.这是我似乎无法在swift 4中工作的部分.
我正在使用以下pods:
pod 'RxSwift','4.0.0-beta.0' pod 'RxCocoa','4.0.0-beta.0'
这是我尝试过的错误即可获得的代码(想想在图片上更容易看到):
我已经看过所有其他问题,提到了解决此问题的方法:
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。