这个问题是对我以前的问题的扩展,但有新的要求。这是我以前的问题。
所以我的新要求是 :
现在,如果我想删除群聊,应该如何处理?如果我在其中使用相同的方法,则会将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:还有其他方法可以退出群聊吗?我希望很清楚!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句