2016-12-29 3 views
0

私は新しいプロジェクトでCarthage経由でRxSwift 3.1(Galois)を使用しています。私はオンラインとドキュメントで見つかったいくつかの例を使ってデータをUITableViewにバインドしようとしました。実行した後、RxSwift 3.1 UITableViewデータソースが動作しない

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() 

    } 
} 

まだ:私のコードは今、この権利のように見えるhttps://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Examples/SimpleTableViewExample/SimpleTableViewExampleViewController.swift

は(私は仕事に望んでいなかったので、私はすでにダムにそれを試してみた) :このファイルであることこれは何も行を表示されませんシミュレータのアプリ。私は、タイプBasicの "CityCell"と呼ばれるtableView上にプロトタイプのセルを持っています。また、コンセントが実際のtableViewにバインドされていることを確認しました。私は何が間違っていますか?それともバグですか?

ありがとうございます。

+0

あなたの例はビルドされません、 'dataSourceにはメンバーがありませんbindTo'。 –

+0

コードがコンパイルされ、実行されます。これは例で指定されたものと同じです - Observ.justを使用してObservableTypeを返します。これはbindToメソッドを持っています – Suryu

+0

問題は、実行後、テーブルにデータソース – Suryu

答えて

1

しばらくしてから解決策が見つかりました。ビューコントローラのプロパティとしてdisposeBagを追加します。あなたのコードのために:

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() 
    } 
} 
+0

うわー、これは本当にうまくいきます!私は他のすべてのもののように今試した...私はこれが問題になることは決してないと思う:) :)ありがとうございました! – Suryu

関連する問題