会话列表数据源协议(ChatListDataSource)

会话列表数据源协议:ChatListDataSource 属于 DataSource(列表数据)。本页的 props / events / behaviors 来自 sdk-imkit.json → globalUIKit,声明与示例来自 bindings.ios.uikit,不手写漂移。

契约属性(props)​

属性类型可选说明
conversations[Conversation]否会话数组(来自 IMLib 会话列表 / CONVERSATION 事件)

事件(events)​

事件参数说明
didChange—数据源变化(需要刷新列表)

行为(behaviors)​

  • numberOfItems/item(at:) 语义
  • 支持外部注入数据集(测试/预览)

公开符号与声明​

语言声明
Swiftprotocol 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 条)。

相关文档​