嘿我正在尝试获取一个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一起使用?
答案 0 :(得分:5)
虽然我不知道为什么Xcode会崩溃,但它似乎是由RxCocoa的断言检查引起的。
默认设置UICollectionViewController
collectionView
的数据来源。
如何在绑定observable之前将其设置为nil
?
self.collectionView!.dataSource = nil
self.vm.sections
.bind(to: self.collectionView!.rx.items(dataSource: self.vm.data))
.disposed(by: self.bag)
答案 1 :(得分:2)
如果从UITableViewController继承,则必须在执行整个表重新加载或刷新操作时调用tableView.datasource = nil
答案 2 :(得分:-1)
您不应将UICollectionViewController
与RxDataSource
使用RxDatasource时,必须使用UIViewController
并在其中创建UITableView或UICollectionView。