Global IM UIKit 错误处理

Global UIKit 不定义独立错误码:ViewModel 通过事件上报错误,错误码来自 IMLib 的 `RcResult`(运行时 43 条码表)。视图层把错误映射为可展示状态(重试、空态、提示),不要直接弹原始 code。

错误上报点​

组件错误 / 状态事件
ChatListViewModelstateChanged(state)
ChatListViewModelerror(err)
ChatViewModelsendStateChanged(localId,state)

处理模式​

// ios-imkit/uikit/errors
let code = IMPErrorCode.invalidParameter
print(code.rawValue)
// 事件名与载荷以 ViewModel 契约声明为准(见组件页);下面展示错误到 UI 状态的映射
self.listViewModel.errorHandler = ^(NSError *error) {
    // 运行时错误码:1002 Token 无效 / 3001 连接未就绪 / 3002 超时
    switch (error.code) {
        case 1002: [self showReLogin]; break;
        case 3001: [self showOfflineBanner]; break;
        case 3002: [self showRetry]; break;
        default: [self showRetryWithCode:error.code message:error.localizedDescription]; break;
    }
};

错误码入口​

不要吞掉未知码

遇到未收录的 code 保留原值并记录日志(含场景、页面、版本),便于码表扩充。