首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxDataSources‘`Generic参数'Self’无法推断

RxDataSources‘`Generic参数'Self’无法推断
EN

Stack Overflow用户
提问于 2019-03-26 12:06:48
回答 1查看 538关注 0票数 0

我知道这方面有很多问题,我看了所有的问题,但这不能解决我的问题。我也评论了其中一个问题,但这个问题似乎不再活跃了,所以我不希望那里有答案。

我正在尝试实现RxDataSources。请参阅下面的代码:

代码语言:javascript
复制
struct ActiveOrdersSection: Equatable {
    static func == (lhs: ActiveOrdersSection, rhs: ActiveOrdersSection) -> Bool {
        return true
    }

    var header: String
    var orders: [Order]
}

extension ActiveOrdersSection: SectionModelType {
    typealias Item = Order

    var items: [Item] {
        set {
            orders = items
        }
        get {
            return orders
        }
    }

    init(original: ActiveOrdersSection, items: [Order]) {
        self = original
        self.items = items
    }
}

ViewController:

代码语言:javascript
复制
class MainViewController: UITableViewDelegate, UITableViewDataSource {

    var db: DisposeBag?
    var dataSource: RxTableViewSectionedReloadDataSource<ActiveOrdersSection>?
    private func setupOrderRx(_ shopId: Int64) {
        let dataSource = RxTableViewSectionedReloadDataSource<ActiveOrdersSection>(
            configureCell: { ds, tv, ip, item in
                let cell = tv.dequeueReusableCell(withIdentifier: "Cell", for: ip) as! UITableViewCell
                cell.textLabel?.text = "Item \(item.id)"
                return cell
            },

            titleForHeaderInSection: { ds, ip in
                return ds.sectionModels[ip].header
            }
        )

        self.dataSource = dataSource
        db = DisposeBag()
        let ors = OrderRxService.listAsShop(shopId, status: .active)
            .map { Observable.just($0.items) } // Convert from Observable<CollectionResponse<Order>> to Observable<Order>
            .observeOn(MainScheduler.instance)
            .bind(to: self.rxTableView.rx.items(dataSource: dataSource))
    }

}

我得到了Generic parameter 'Self' could not be inferred on .bind(to: self.rxTableView.rx.items(dataSource: dataSource))。我看了一下RxDataSources示例,现在看上去也是一样的,但是我似乎无法修复这个错误。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 12:25:06

绑定到RxTableViewSectionedReloadDataSource的Rx流必须是Observable<[ActiveOrdersSection]>类型。我不知道在这个示例中您的类型是什么,因为您提供的代码还不够,但是我认为通过使用.map { Observable.just($0.items) },结果流将是Observable<Observable<[Order]>>类型。尝试将其更改为:.map { [ActiveOrdersSection(header: "Your Header", orders: 0.items)] }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55356766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档