Global IM UIKit 错误处理
Global UIKit 不定义独立错误码:ViewModel 通过事件上报错误,错误码来自 IMLib 的 `RcResult`(运行时 43 条码表)。视图层把错误映射为可展示状态(重试、空态、提示),不要直接弹原始 code。
错误上报点
| 组件 | 错误 / 状态事件 |
|---|---|
ChatListViewModel | stateChanged(state) |
ChatListViewModel | error(err) |
ChatViewModel | sendStateChanged(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;
}
};错误码入口
- 状态码:运行时 43 条码表、返回信封与重试建议
- 状态码全量对照(440 条):兼容枚举与同码不同义说明
- 状态码对照与覆盖:迁移口径
- macOS 错误码:桌面端共用运行时码表
不要吞掉未知码
遇到未收录的 code 保留原值并记录日志(含场景、页面、版本),便于码表扩充。