3

嘿,我正在尝试获取由 UICollectionViewController 托管的 UICollectionView,它与 RxCocoa 和 RxDataSources 一起使用。

当我使用带有嵌入式 UICollectionView 的 UIViewController 时,一切正常。

但是当我尝试通过相同的逻辑连接时:

        self.vm.sections
        .bind(to: self.collectionView!.rx.items(dataSource: self.vm.data))
        .disposed(by: self.bag)

在 UICollectionViewController 中使用 UICollectionView,Xcode 完全崩溃。

关于 RxDataSources,我是否缺少某些东西,您不能将它们与 UICollectionViewController 一起使用?

4

3 回答 3

5

虽然我不知道 Xcode 崩溃的原因,但它似乎是由 RxCocoa 的断言检查引起的。

UICollectionViewController's的数据源collectionView是默认设置的。nil在与 observable 绑定之前将其设置为怎么样?

self.collectionView!.dataSource = nil
self.vm.sections
.bind(to: self.collectionView!.rx.items(dataSource: self.vm.data))
.disposed(by: self.bag)
于 2017-11-23T09:02:45.823 回答
2

如果您从 UITableViewController 继承,则必须tableView.datasource = nil在执行整个表重新加载或刷新操作时调用

于 2018-02-22T10:34:27.180 回答
-1

你不应该UICollectionViewController使用RxDataSource

使用 RxDatasource 时,您必须在其中使用UIViewController并创建 UITableView 或 UICollectionView。

于 2017-11-23T01:24:48.880 回答