2015-12-04 4 views
1

Я получаю следующую ошибку при использовании RxTableViewSectionedAnimatedDataSource в UITableView's rx_itemsAnimatedWithDataSource().Ошибка сборки при связывании `RxTableViewSectionedAnimatedDataSource` с UITableView

Вот Screengrab ошибки:

Xcode Error

Cannot invoke 'rx_itemsAnimatedWithDataSource' with an argument list of type '(RxTableViewSectionedAnimatedDataSource)'

Expected an argument list of type '(DataSource)'

self.dataSource имеет тип:

RxTableViewSectionedAnimatedDataSource< DateSelectorSectionModel>

и вот сгенерированный интерфейс для DateSelectorSectionModel, а также связанные с ними типы:

typealias DateSelectorSectionModel = SectionModel<SectionDesc, SectionDesc> 

enum SectionType { 
    case StartDate, EndDate, TimeZone, AllDay 
} 

enum SectionState { 
    case Present, Missing, Dirty 
} 

enum SectionSelection { 
    case NotSelected, Selected 
} 

struct SectionDesc { 
    var type: SectionType 
    var state: SectionState 
    var selectionState: SectionSelection 
    init(type: SectionType, state: SectionState, selection: SectionSelection) 
    public func getSectionModel() -> DateSelectorSectionModel 
} 

extension EventDetailsDateSelectorViewModel { 
    public var rows: RxCocoa.Driver<[DateSelectorSectionModel]> { get } 
} 

Любые идеи? Благодаря!

ответ

0

Я нашел проблему.

Для анимированных источников данных правильная модель должна быть типа HashableSectionModel. Это означает, что:

// Instead of this: 
typealias DateSelectorSectionModel = SectionModel<SectionDesc, SectionDesc> 
// Do this: 
typealias DateSelectorSectionModel = HashableSectionModel<SectionDesc, SectionDesc> 

С этим изменением все скомпилируется, как ожидалось.

Смежные вопросы