使用 RxSwift 对成员“tableView”的模糊引用

Posted

技术标签:

【中文标题】使用 RxSwift 对成员“tableView”的模糊引用【英文标题】:Ambiguous reference to member 'tableView' using RxSwift 【发布时间】:2017-09-12 22:49:04 【问题描述】:

tableView ambiguous reference error

我正面临这个错误,就像你们中的许多人已经面临的一样。我的 UITableViewController 中有以下代码:

import Foundation
import RxSwift
import RxCocoa

class DiscoveryViewController : UITableViewController 

// MARK: - Properties
let viewModel = MFMovieListViewModel()
let disposeBag: DisposeBag = DisposeBag()

override func viewDidLoad() 
    super.viewDidLoad()
    setupBindings()


// MARK: - Rx binding
private func setupBindings() 
    self.viewModel
        .movies
        .bind(to: tableView
            .rx
            .items(cellIdentifier: MovieListCell.DefaultReuseIdentifier,
                                   cellType: MovieListCell.self)) 
            (row, movie, cell) in
            cell.configure(with: movie)
        .addDisposableTo(self.disposeBag)       


查看模型如下:

import Foundation
import RxSwift
import RxCocoa

class MFMovieListViewModel 

// MARK: - Properties
lazy var movies: Observable<[MovieListMDB]> = 
    return MFAPIClinet.sharedInstance().popularMovies()
()   

不要认为它与 Xcode 8.3 或 OSX 10.12 相关,但仍然尝试重新启动但没有解决任何问题。感谢提供的任何帮助。

【问题讨论】:

【参考方案1】:

发现问题。在 MovieListCell 中未定义 DefaultReuseIdentifier。 :) 有趣的错误信息!

【讨论】:

以上是关于使用 RxSwift 对成员“tableView”的模糊引用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 RxSwift 中使用 tableView 数据源(numberOfRowsInSection)?

正确使用 RxSwift 和 TableView

RxSwift 如何知道 TableView 重新加载结束

RxSwift Observeable 不会在数据更改时更新 tableview

RxSwift TableView - 如何设置 numberOfRowsInSection?

RxSwift + canMoveRowAt