You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RxTableViewSectionedAnimatedDataSource绑定时提示不遵循RxTableViewDataSourceType

报错根因

类型推导错误导致序列泛型不匹配:你定义的sectionDatas本身就是[CustomSectionDataType](Section模型的一维数组),在初始化BehaviorRelay时你又额外套了一层数组,写成了[sectionDatas],导致Relay的泛型被推导为[[CustomSectionDataType]](二维数组)。而tableView.rx.items(dataSource:)方法要求绑定的可观察序列元素必须为一维的[SectionModel]类型,类型不匹配时编译器会误抛出协议不兼容的错误提示。
依赖导入不全:如果修改类型后仍报错,确认你同时导入了三个依赖库:

import RxSwift
import RxCocoa
import RxDataSources
修复方案

仅需修改BehaviorRelay初始化代码,去掉多余的外层数组:

// 原错误代码
// let items = BehaviorRelay(value: [sectionDatas])
// 修正后代码
let items = BehaviorRelay(value: sectionDatas)
可选排查项
  • 确认你使用的RxDataSources版本与RxSwift、RxCocoa版本匹配,避免跨版本协议声明差异导致的错误
  • 若自定义Section的Item为非基础类型,需确认Item遵守IdentifiableType与Equatable协议(当前你用的是String类型,默认满足要求无需额外处理)

内容的提问来源于stack exchange,提问作者Zim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:45:03