这个问题是对我之前的问题的扩展,有新的要求。这是我的上一个问题。
所以我的新要求是 :
现在如果我想删除群聊我应该如何处理?如果我在其中使用相同的方法,我们会将 forAllUsers 传递为硬编码的“NO”。写在 QMChatServices.m 中
- (void)deleteDialogWithID:(NSString *)dialogId completion:(void (^)(QBResponse *))completion {
NSParameterAssert(dialogId);
__weak __typeof(self)weakSelf = self;
[QBRequest deleteDialogsWithIDs:[NSSet setWithObject:dialogId] forAllUsers:NO successBlock:^(QBResponse *response, NSArray *deletedObjectsIDs, NSArray *notFoundObjectsIDs, NSArray *wrongPermissionsObjectsIDs) {
//
[weakSelf.dialogsMemoryStorage deleteChatDialogWithID:dialogId];
[weakSelf.messagesMemoryStorage deleteMessagesWithDialogID:dialogId];
if ([weakSelf.multicastDelegate respondsToSelector:@selector(chatService:didDeleteChatDialogWithIDFromMemoryStorage:)]) {
[weakSelf.multicastDelegate chatService:weakSelf didDeleteChatDialogWithIDFromMemoryStorage:dialogId];
}
[weakSelf.loadedAllMessages removeObjectsForKeys:deletedObjectsIDs];
if (completion) {
completion(response);
}
} errorBlock:^(QBResponse *response) {
//
if (response.status == QBResponseStatusCodeNotFound || response.status == 403) {
[weakSelf.dialogsMemoryStorage deleteChatDialogWithID:dialogId];
if ([weakSelf.multicastDelegate respondsToSelector:@selector(chatService:didDeleteChatDialogWithIDFromMemoryStorage:)]) {
[weakSelf.multicastDelegate chatService:weakSelf didDeleteChatDialogWithIDFromMemoryStorage:dialogId];
}
}
else {
[weakSelf.serviceManager handleErrorResponse:response];
}
if (completion) {
completion(response);
}
}];
}
所以现在我的疑问是..
问题 1:如果我们想删除所有用户的对话框怎么办。问题 2:假设有 3 个用户。用户 1 、用户 2 和用户 3。现在 User1 已经用 User2 和 User3 创建了组。
那么这种方法对所有不同的 3 个用户都有用。我的意思是如果 User1 使用会发生什么
[ServicesManager.instance.chatService deleteDialogWithID:dialog.ID completion:nil];
如果 User2 和 User3 使用相同的方法会发生什么。
天气它作为退出对话框或删除对话框。在群组和公共聊天的情况下,我对这种方法如何适用于不同用户感到有点困惑。
问题3:有没有其他退出群聊的方法?我希望它是清楚的!