在我的应用中,我正在实施快速blox。我在删除聊天消息时遇到问题。我想删除所选的聊天消息。我的步骤是:
我成功回复了。但是,当我再次为此ID创建对话框时,我也会收到已删除的消息。当我重新启动我的应用程序并为此Id创建对话框时,它工作正常,我不会删除已删除的消息。我的代码是。
NSMutableSet *messagesToBeDeleteSet = [[NSMutableSet alloc]init];
NSArray *keysArray = [idxDictionary allKeys];
if([keysArray count] > 0)
{
for(int counter=0; counter<[keysArray count]; counter++)
{
NSInteger value = [[idxDictionary objectForKey:[keysArray objectAtIndex:counter]] integerValue];
if([[[ChatService shared] messagsForDialogId:self.dialog.ID] count] > 0)
{
QBChatMessage *message = [[[ChatService shared] messagsForDialogId:self.dialog.ID] objectAtIndex:value];
[messagesToBeDeleteSet addObject:message.ID];
}
}
}
[QBRequest deleteMessagesWithIDs:messagesToBeDeleteSet successBlock:^(QBResponse *response) {
NSLog(@"success");
} errorBlock:^(QBResponse *response) {
NSLog(@"deleteMessageWithID error:%@", response.error);
}];
答案 0 :(得分:0)
您还必须从本地删除该消息。
就像我使用单个messege一样
- (void)removeMessage:(QBChatMessage *)message forDialogId:(NSString *)dialogId
{
NSMutableArray *messagesArray = [self.messages objectForKey:dialogId];
if(messagesArray != nil){
[messagesArray removeObject:message];
[self sortMessages:messagesArray];
}
}
答案 1 :(得分:0)
迅速5:
删除邮件之前我们应该知道的事情。
如果您是邮件的所有者(即您的邮件)
如果您不是邮件的所有者(即对方用户的邮件)
以下API用于删除消息
//You can delete single or multiple messages by using single API. (need message id's)
QBRequest.deleteMessages(withIDs: Set(arrayLiteral:"54fdbb69535c12c2e407c672","54fdbb69535c12c2e407c673"), forAllUsers: true, successBlock: { (response) in
print("Deleted Successfully")
}) { (err) in
print("Failed")
}
如果您将true
传递给forAllUsers
参数,并且您是邮件的所有者,则将删除所有用户的邮件。如果您将false
传递给forAllUsers
参数,则该参数将仅对当前用户删除,而其他用户仍将拥有它。