Xcode 将 RxDataSource 添加到 UICollectionView 时崩溃

Xcode crashes while adding RxDataSource to UICollectionView

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

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

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

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

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

关于 RxDataSources 我是否遗漏了什么,你不能将它们与 UICollectionViewController 一起使用?

您不应将 UICollectionViewControllerRxDataSource

一起使用

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

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

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

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

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