RxSwift 无法将调用结果类型 '(_) -> Disposable' 转换为预期类型 '(_) ->
RxSwift Cannot convert call result type '(_) -> Disposable' to expected type '(_) ->
我正在尝试使用 RxSwift 将 headerView 添加到 collectionView。
我收到此错误:
Cannot convert call result type '() -> Disposable' to expected type '() ->
在这一行:
obsHeader.asObservable().bind(to: collectionView.rx.items(dataSource: dataSource)).disposed(by: disposeBag)
我不明白如何修复它。有帮助吗?
我post这里剩下的代码:
struct SectionItemObject {
let collectionViewRecommendations: UICollectionView
let items: [SFCardViewModelListOfCardsProtocol]
}
struct SectionOfItems {
var items: [Item]
}
extension SectionOfItems: SectionModelType {
typealias Item = SectionItemObject
init(original: SectionOfItems, items: [Item]) {
self = original
self.items = items
}
init(items: [Item]?) {
self.items = items ?? [Item]()
}
}
这就是我在调用观察的方法中写的。
let dataSource = RxCollectionViewSectionedReloadDataSource<SectionOfItems>(configureCell: { (datasource, collectionview, indexPath, i) -> UICollectionViewCell in
let cell = collectionview.dequeueReusableCell(withReuseIdentifier: "CardView", for: indexPath) as! CardView
// self.setCell(card:card,cell:cell)
cell.lbTitle.text = "TEST"
return cell
}, configureSupplementaryView: { (datasource, collectionview, kind, indexPath) -> UICollectionReusableView in
let section = collectionview.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "AddNewCardCollectionHeaderView", for: indexPath) as! AddNewCardCollectionHeaderView
section.backgroundColor = UIColor.orange
section.collectionViewRecommendations = self.collectionViewRecommendations
return section
} )
let item = SectionItemObject(collectionViewRecommendations: self.collectionViewRecommendations!, items: viewModelProtocol.searchedCards.value)
let obsHeader = Variable(SectionOfItems(items: [item]))
obsHeader.asObservable().bind(to: collectionView.rx.items(dataSource: dataSource)).disposed(by: disposeBag)
我敢打赌你的 obsHeader
需要输入 Variable<[SectionOfItems]>
所以就去做吧
let obsHeader = Variable([SectionOfItems(items: [item])])
我正在尝试使用 RxSwift 将 headerView 添加到 collectionView。
我收到此错误:
Cannot convert call result type '() -> Disposable' to expected type '() ->
在这一行:
obsHeader.asObservable().bind(to: collectionView.rx.items(dataSource: dataSource)).disposed(by: disposeBag)
我不明白如何修复它。有帮助吗?
我post这里剩下的代码:
struct SectionItemObject {
let collectionViewRecommendations: UICollectionView
let items: [SFCardViewModelListOfCardsProtocol]
}
struct SectionOfItems {
var items: [Item]
}
extension SectionOfItems: SectionModelType {
typealias Item = SectionItemObject
init(original: SectionOfItems, items: [Item]) {
self = original
self.items = items
}
init(items: [Item]?) {
self.items = items ?? [Item]()
}
}
这就是我在调用观察的方法中写的。
let dataSource = RxCollectionViewSectionedReloadDataSource<SectionOfItems>(configureCell: { (datasource, collectionview, indexPath, i) -> UICollectionViewCell in
let cell = collectionview.dequeueReusableCell(withReuseIdentifier: "CardView", for: indexPath) as! CardView
// self.setCell(card:card,cell:cell)
cell.lbTitle.text = "TEST"
return cell
}, configureSupplementaryView: { (datasource, collectionview, kind, indexPath) -> UICollectionReusableView in
let section = collectionview.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "AddNewCardCollectionHeaderView", for: indexPath) as! AddNewCardCollectionHeaderView
section.backgroundColor = UIColor.orange
section.collectionViewRecommendations = self.collectionViewRecommendations
return section
} )
let item = SectionItemObject(collectionViewRecommendations: self.collectionViewRecommendations!, items: viewModelProtocol.searchedCards.value)
let obsHeader = Variable(SectionOfItems(items: [item]))
obsHeader.asObservable().bind(to: collectionView.rx.items(dataSource: dataSource)).disposed(by: disposeBag)
我敢打赌你的 obsHeader
需要输入 Variable<[SectionOfItems]>
所以就去做吧
let obsHeader = Variable([SectionOfItems(items: [item])])