[使用RxDataSources将分区表与TableViewSectionedDataSource绑定,需要符合SectionModelType的部分。
此SectionModelType协议具有以下初始化器作为其要求之一:
init(original: Self, items: [Item])
此外,相同的协议强制执行var items: [Item] { get }
。现在,我们可以使用init
或作为初始参数传递的original.items
来初始化items数组支持变量(在上述items
中)。这非常令人困惑。 SectionModelType代码没有注释。
README的[How部分,介绍了在这种情况下创建部分的内容,讨论了创建类型别名(用于关联值)和items数组,但没有涉及通过init
使用original: Self
的实现:] >
init(original: SectionOfCustomData, items: [Item]) { self = original self.items = items }
虽然这可以在结构中工作,但在类中大喊大叫:
无法分配值:'自我'是不可变的>>
[这里有人可以解释这里发生了什么,为什么我们需要使用
Self
进行初始化最后,还有另一种(更简洁的)反应方式(仅在RXSwift / RxCocoa中)将分段表视图绑定到可观察的数据源。例如*我的单元格和部分具有自己的数据模型,这些数据模型必须是可变的(因此是类)*有多个对不同实体有此要求的屏幕,因此我很乐意通过协议来实现这一目标,并使用协议对相应的数据模型进行拍打,并且对RXBinding具有通用的实现方式]
任何可以使现有实现更加清晰或达到上述要点的指针都将非常有帮助。附注:我已经在使用Rx的庞大代码库中工作,所以我不想要使用Rx,或者不使用SwiftUI等。
使用TableViewSectionedDataSource将分段表与RxDataSources绑定,需要符合SectionModelType的分段。此SectionModelType协议具有以下初始化程序,作为...
init(original:items:)
是copy
items
属性中的内容。