使用TableViewSectionedDataSource将分段表与RxDataSources绑定,需要符合SectionModelType的部分。
此SectionModelType协议具有以下初始化程序作为其要求之一:
init(original: Self, items: [Item])
此外,相同的协议强制执行var items: [Item] { get }
. 我们现在可以init
使用 fromoriginal.items
或items
作为 init 参数传递来初始化 items 数组支持变量(在上面提到的)。这非常令人困惑。SectionModelType 代码没有注释。
README 的How部分解释了为这种情况创建部分,讨论了创建类型别名(用于关联值)和 items 数组,但没有关于以下实现init
with的说法original: Self
:
init(original: SectionOfCustomData, items: [Item]) {
self = original
self.items = items
}
虽然这可以在结构中工作,但在类中做同样的喊叫:
无法赋值:'self' 是不可变的
任何人都可以在这里解释这里发生了什么以及为什么我们需要初始化Self
最后,是否有另一种(更清洁的)反应方式(仅在 RXSwift / RxCocoa 中)将分段表视图绑定到可观察数据源。例如 * 我的单元格和部分有自己的数据模型,它们需要是可变的(因此是类) * 有多个屏幕对不同的实体有这个要求,所以我会对用协议来实现这一点感兴趣,并拍下相应的具有协议 ans 的数据模型具有 RXBinding 的通用实现
任何可以更清楚地了解现有实现或实现上述要点的指针都会非常有帮助。PS:我已经在使用 Rx 的庞大代码库中工作,所以不使用 Rx,或者迁移到 SwiftUI 等不是我想要的。