XMPP 프레임 워크를 사용하여 일대일 채팅을 구현했습니다. 일대일 채팅을 광범위하게 지원합니다. 메시지 보관 및 가져 오기는 간단합니다. 하지만 그룹 채팅 메시지를 저장하고 표시 할 때 매우 어려움을 겪습니다. 정렬 및 술어가 실패합니다. 중복 메시지가 표시됩니다. 난 내 이미 저장된 메시지를 가져 오기 전에 내가MUC 채팅 메시지 처리 방법 - 메시지 복제
내가 볼XMPPRoomCoreDataStorage *coreDataRoomStorage=[self appDelegate].xmppRoomCoreDataStorage;
XMPPRoom *room=[[XMPPRoom alloc]initWithRoomStorage:coreDataRoomStorage jid:user.bareJid];
[room activate:[self appDelegate].xmppStream];
[room addDelegate:[self appDelegate] delegateQueue:dispatch_get_main_queue()];
[room joinRoomUsingNickname:user.user_name history:nil];
이 메시지의 여러 중복 절약이 있습니다) 방에 가입하는 방법
이입니다. 하나의 메시지가 3-4 번 저장됩니다. 나는 무엇을 잘못하고 있을지 모른다. 일부 신체 pls 도움이! 이것은 내가 방에서 메시지를 fecting하기위한 코드입니다.
- (NSFetchedResultsController *)fetchedResultsController{
if (fetchedResultsController == nil)
{
NSManagedObjectContext *moc = [[self appDelegate] managedObjectContext_message];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject"
inManagedObjectContext:moc];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"bareJidStr=%@",_thisRoom.roomJID.bare];
NSSortDescriptor *sd1 = [[NSSortDescriptor alloc] initWithKey:@"timestamp" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sd1, nil];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setPredicate:predicate];
[fetchRequest setFetchBatchSize:20];
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:moc
sectionNameKeyPath:nil
cacheName:nil];
[fetchedResultsController setDelegate:self];
NSError *error = nil;
if (![fetchedResultsController performFetch:&error])
{
DDLogError(@"Error performing fetch: %@", error);
}
}
return fetchedResultsController;}
왜 downvoted? 질문은 정품이며이 질문에 대한 답변은 robbie hanson xmpp 프레임 워크를 사용하여 그룹 채팅을하는 모든 사용자에게 도움이 될 것입니다. 이 프레임 워크에서 3-4 번 반복 된 동일한 메시지 문제가 있습니다. 누군가 주변에서 어떤 일을 발견하면 저축 할 것입니다. –
친구를 걱정하지 마십시오. 행복해집니다. 투표 결과 없음을 볼 수 있습니다. 질문에 투표했습니다.나는 당신이 그 진정한 질문에 완전히 동의하기 때문에. –