如何调用Twilio TCHMessages的removeMessage方法删除消息
Twilio TCHMessages 移除指定消息的正确调用方法
这个方法是Twilio Programmable Chat iOS SDK 中TCHMessages类提供的消息删除接口,正确调用方式如下:
前置要求
- 持有目标消息所属频道对应的
TCHMessages实例,可通过已加入的TCHChannel对象的messages属性获取 - 提前拿到需要删除的真实
TCHMessage对象(从消息拉取接口、新消息监听回调中获取,不能自己手动初始化) - 当前登录用户具备对应频道的消息删除权限
参数说明
message:非空必填,传入你要删除的目标消息对象,传nil会触发SDK参数校验崩溃completion:可为空,操作结束后的结果回调,不需要监听操作结果时可以直接传nil
调用示例(Objective-C)
// 此处self.currentChannel为你当前操作的TCHChannel实例,targetMessage为待删除的消息对象 TCHMessages *messages = self.currentChannel.messages; [messages removeMessage:targetMessage completion:^(TCHResult *result) { dispatch_async(dispatch_get_main_queue(), ^{ if (result.successful) { // 删除成功,在这里刷新本地消息列表UI [self.messageTableView reloadData]; } else { // 删除失败,处理错误,比如无权限、消息不存在、网络异常等 NSLog(@"删除消息失败: %@", result.error.localizedDescription); } }); }];
常见踩坑点
- 不要在调用方法后立刻手动从本地数据源删除对应消息,SDK会在服务端删除成功后自动同步本地消息状态,提前修改UI可能导致和SDK同步逻辑冲突出现显示异常
- 删除他人发送的消息需要提前在Twilio控制台配置对应角色的
canDeleteMessages权限,否则会返回权限错误 - 如果传入的message对象不属于当前TCHMessages对应的频道,删除操作会返回消息不存在的错误
内容的提问来源于stack exchange,提问作者Sparx it solutions
相关产品推荐
相关产品推荐

