一条消息收到多次,为什么?
SDK之多播机制,如果您需要收到回调需要确定以下几点:
1、要接收的类实现委托 : IChatMangerDelegate
2、要接收的类注册回调: [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
3、添加要回调的方法,如收消息:-(void)didReceiveMessage:(EMMessage *)message;
如果您收到了多条消息,应当考虑以下几点:
1.该类做了几次 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
2.当前类存在几个实例。如果当前类存在多个实例,则每个实例都会执行回调方法,就会导致UI认为收到了多条消息。
针对这个问题,可以再回调中打印self,看对象是否是一个,如果每次回调都指向了不同的内存地址,标明您的类存在多个实例,或者是您的类没有释放导致。
1、要接收的类实现委托 : IChatMangerDelegate
2、要接收的类注册回调: [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
3、添加要回调的方法,如收消息:-(void)didReceiveMessage:(EMMessage *)message;
如果您收到了多条消息,应当考虑以下几点:
1.该类做了几次 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
2.当前类存在几个实例。如果当前类存在多个实例,则每个实例都会执行回调方法,就会导致UI认为收到了多条消息。
针对这个问题,可以再回调中打印self,看对象是否是一个,如果每次回调都指向了不同的内存地址,标明您的类存在多个实例,或者是您的类没有释放导致。