会话列表数据源协议(ChatListDataSource)
会话列表数据源协议:ChatListDataSource 属于 DataSource(列表数据)。本页的 props / events / behaviors 来自 sdk-imkit.json → globalUIKit,声明与示例来自 bindings.ios.uikit,不手写漂移。
契约属性(props)
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
conversations | [Conversation] | 否 | 会话数组(来自 IMLib 会话列表 / CONVERSATION 事件) |
事件(events)
| 事件 | 参数 | 说明 |
|---|---|---|
didChange | — | 数据源变化(需要刷新列表) |
行为(behaviors)
- numberOfItems/item(at:) 语义
- 支持外部注入数据集(测试/预览)
公开符号与声明
| 语言 | 声明 |
|---|---|
| Swift | protocol IMPChatListDataSource: AnyObject { var conversations: [IMPConversation] { get } } |
| Objective-C | @protocol IMPOSGlobalChatListDataSource <NSObject> @property (nonatomic, copy, readonly) NSArray<IMPOSConversation *> *conversations; @end |
使用示例(Swift / Objective-C)
final class MyChatListDataSource: IMPChatListDataSource {
var conversations: [IMPConversation] = []
init() {}
}@interface MyChatListDataSource : NSObject <IMPOSGlobalChatListDataSource>
@property (nonatomic, copy) id conversations;
@end
@implementation MyChatListDataSource
@end示例口径
示例由绑定签名与契约类型生成:构造函数参数、协议方法、属性名均来自契约;实际业务中把示例变量替换为宿主实例即可。
在架构中的位置
| 项 | 值 |
|---|---|
| 层 | DataSource(列表数据) |
| 依赖 | GlobalUIKit -> IMKit -> IMLib(公开接口) |
| 相关组件 | ChatListViewModel、ChatListViewController |
错误处理
ViewModel 层通过事件上报错误(如 error(err));错误码与处理建议见 Global IM UIKit 错误处理、状态码(运行时 43 条)与 状态码全量对照(440 条)。