使用说明
更新时间: 2024/03/14 17:08:35
使用说明
API 调用方式
IM 所有业务均通过 NIMSDK 单例进行调用。
objc@interface NIMSDK : NSObject
/**
* 获取SDK实例
*
* @return NIMSDK实例
*/
+ (instancetype)sharedSDK;
@end
以获取聊天管理类为例:
objcid<NIMChatManager> chatManager = [[NIMSDK sharedSDK] chatManager];
虽然所有的云信接口都是线程安全的,但为了防范于未然,推荐您在且只在主线程调用相应接口。
通知方式
SDK 通过两种方式通知上层 API 调用结果。
- 回调(callback)
- 委托 (delegate)
两种方式都只在主线程触发。
一般回调接口直接反映在对应接口的 completion
参数上,调用时设置即可。而委托则需要开发者在合适时机在对应管理类上进行添加和移除:一般推荐在相应 ViewController
或管理类初始化进行委托注册,在其销毁时进行移除。
例如,开发者需要在会话页上监听消息的发送结果。
objc@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
。当然在开发过程中您也可以通过检视 NSError
中 userInfo
对应的错误描述信息定位问题。
此文档是否对你有帮助?