gpt4 book ai didi

ios - RxSwift 3.1 UITableView 数据源不工作

转载 作者:行者123 更新时间:2023-11-28 10:16:09 25 4
gpt4 key购买 nike

我在我的新项目中通过 Carthage 使用 RxSwift 3.1 (Galois),我只是尝试使用我在网上和文档中找到的一些示例将数据绑定(bind)到 UITableView - 其中之一是这个文件: https://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Examples/SimpleTableViewExample/SimpleTableViewExampleViewController.swift

我的代码现在看起来像这样(我已经尝试将其简化,因为我想工作的东西没有):

class ChooseCityView: UIViewController, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {

super.viewDidLoad()

let dataSource = Observable.just((0..<20).map { "\($0)" })
let disposeBag = DisposeBag()

dataSource.bindTo(tableView.rx.items(cellIdentifier: "CityCell", cellType: UITableViewCell.self)) {
(row, city, cell) in
cell.backgroundColor = .white
cell.textLabel?.text = "test \(city)"
}.addDisposableTo(disposeBag)

// Remove empty cells
tableView.tableFooterView = UIView()

}
}

不过,在模拟器中运行应用程序后,这不会显示任何行。我在 tableView 上有一个名为“CityCell”的原型(prototype)单元格,类型为 Basic。另外,我确保 socket 与实际的 tableView 绑定(bind)。我做错了什么?或者这是一个错误?

提前致谢:)

最佳答案

一段时间后,我找到了解决方案。添加 disposeBag 作为 View Controller 的属性。对于您的代码:

class ChooseCityView: UIViewController, UITableViewDelegate  {

@IBOutlet weak var tableView: UITableView!
let disposeBag = DisposeBag()

override func viewDidLoad() {
super.viewDidLoad()

let dataSource = Observable.just((0..<20).map { "\($0)" })

dataSource.bindTo(tableView.rx.items(cellIdentifier: "CityCell", cellType: UITableViewCell.self)) {
(row, city, cell) in
cell.backgroundColor = .white
cell.textLabel?.text = "test \(city)"
}.addDisposableTo(disposeBag)

// Remove empty cells
tableView.tableFooterView = UIView()
}
}

关于ios - RxSwift 3.1 UITableView 数据源不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com