注册

发送一次消息却来很多次回调???-(void)didSendMessage:(EMMessage *)message error:(EMError *)error

 //发送音频消息

        EMMessage *tempMessage = [ChatSendHelper sendVoice:voice

                                                toUsername:_conversation.chatter

                                               isChatGroup:YES

                                         requireEncryption:NO ext:nil];
上面发送消息  下面回调多次为什么呢!
 -(void)didSendMessage:(EMMessage *)message error:(EMError *)error
已邀请:
监听一下代理注册方法,应该执行了多次,didSendMessage方法是回调方法,代理注册一次,回调方法就会执行一次,代理注册多次,回调方法即执行多次。
是这个吗????
 
 /*!

 @Method

 @brief 注册一个监听对象到监听列表中

 @discussion 把监听对象添加到监听列表中准备接收相应的事件

 @param delegate 需要注册的监听对象

 @param aQueue 通知监听对象时的线程

 @result

 */

- (void)addDelegate:(id<IDeviceManagerDelegate>)delegate onQueue:(dispatch_queue_t)aQueue;




/*!

 @Method

 @brief 从监听列表中移除一个监听对象

 @discussion 把监听对象从监听列表中移除,取消接收相应的事件

 @param delegate 需要移除的监听对象

 @result

 */

- (void)removeDelegate:(id<IDeviceManagerDelegate>)delegate;
是的,在demo中是这样的:
//注册为SDK的ChatManager的delegate
[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
恩 现在注册了  就可以回调了是吧  为什么掉多次呢  麻烦解答下  
 
注册多次就回调多次。
我这里  应该值注册了一次吧  
 
#pragma makr  以下三行代码必须写,注册为SDK的ChatManager的delegate

    [[[EaseMob sharedInstance] deviceManager] addDelegate:self onQueue:nil];

    

    [[EaseMob sharedInstance].chatManager removeDelegate:self];

    //注册为SDK的ChatManager的delegate

    [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
 
我这个代码只写在了 viewdidload里面应该只会注册一次吧   谢谢了  帮忙解答  
看注册的代码走了几次,是否还有其他地方重复注册代理,或是代理在该移除的地方没有移除。
这个控制器里面只注册了一次  我刚刚找了 就一次 
 #warning 以下第一行代码必须写,将self从ChatManager的代理中移除

    [[EaseMob sharedInstance].chatManager removeDelegate:self];
这里我也写了
那有没有在其他地方调用didsendmessage呢?
其他地方  没有调用 !  我就是为了  发送一条语音   然后  你们回调一次给我  我拿到URL 去做我的业务!  
把demo的appKey换成你的,然后登录你的账号在demo测试一下看看。看回调会走多次吗

要回复问题请先登录注册