IM 即时通讯
iOS
开发指南

使用说明

更新时间: 2023/07/12 15:35:15

使用说明

API 调用方式

IM 所有业务均通过 NIMSDK 单例进行调用。

@interface NIMSDK : NSObject
/**
 *  获取SDK实例
 *
 *  @return NIMSDK实例
 */
+ (instancetype)sharedSDK;
@end

以获取聊天管理类为例:

id<NIMChatManager> chatManager = [[NIMSDK sharedSDK] chatManager];

虽然所有的云信接口都是线程安全的,但为了防范于未然,推荐您在且只在主线程调用相应接口。

通知方式

SDK 通过两种方式通知上层 API 调用结果。

  • 回调(callback)
  • 委托 (delegate)

两种方式都只在主线程触发。

一般回调接口直接反映在对应接口的 completion 参数上,调用时设置即可。而委托则需要开发者在合适时机在对应管理类上进行添加和移除:一般推荐在相应 ViewController 或管理类初始化进行委托注册,在其销毁时进行移除。

例如,开发者需要在会话页上监听消息的发送结果。

@implementation MySessionViewController

- (void)dealloc
{
  ...
    [[NIMSDK sharedSDK].chatManager removeDelegate:self];
  ...
}

- (void)viewDidLoad 
{
  ...
    [[NIMSDK sharedSDK].chatManager addDelegate:self];
  ...
}

#pragma mark - NIMChatManagerDelegate
- (void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error
{
    //发送结果
}

所有调用错误都会以 NSError 的形式暴露。针对不同场景,我们将错误进行分类,主要分为以下两种错误域和对应错误码:

错误域 错误码 说明
NIMLocalErrorDomain NIMLocalErrorCode 本地操作出错导致
NIMRemoteErrorDomain NIMRemoteErrorCode 与服务器交互出错导致

在开发过程中遇到错误情况,可以对照错误域和错误码进行排查,具体定义可以参考 NIMGlobalDefs.h。当然在开发过程中您也可以通过检视 NSErroruserInfo 对应的错误描述信息定位问题。

此文档是否对你有帮助?
有帮助
去反馈
  • 使用说明
  • API 调用方式
  • 通知方式