Enregistrement de XMPPMessage dans CoreData dans XOS XMPPFrameWork

Je travaille sur une application de chat et en utilisant xmppframework. Maintenant, il est nécessaire de stocker le message dans un stockage persistant. Quelqu'un peut-il me dire comment puis-je stocker et récupérer des messages de CoreData dans IOS.

Puisque vous utilisez github / robbiehanson / XMPPFramework, il est facile d'save vos messages entrants et sortants pendant l'initialisation:

//this code init your XMPPStream xmppStream = [[XMPPStream alloc]init]; [xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()]; xmppStream.autoStartTLS = YES; xmppReconnect = [[XMPPReconnect alloc]init]; [xmppReconnect activate:self.xmppStream]; xmppMessageArchivingCoreDataStorage = [XMPPMessageArchivingCoreDataStorage sharedInstance]; xmppMessageArchivingModule = [[XMPPMessageArchiving alloc]initWithMessageArchivingStorage:xmppMessageArchivingCoreDataStorage]; [xmppMessageArchivingModule setClientSideMessageArchivingOnly:YES]; [xmppMessageArchivingModule activate:xmppStream]; //By this line all your messages are stored in CoreData [xmppMessageArchivingModule addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

Pour récupérer le message enregistré, voici l'exemple de code dans mon projet:

 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSManagedObjectContext *context = [self.xmppMessageArchivingCoreDataStorage mainThreadManagedObjectContext]; NSEntityDescription *messageEntity = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject" inManagedObjectContext:context]; fetchRequest.entity = messageEntity; NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:NO]; fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSError *error = nil; NSArray *results = [context executeFetchRequest:fetchRequest error:&error]; //Now you get the NSArray with element type of "XMPPMessageArchiving_Message_CoreDataObject" 

Utilisez-vous https://github.com/robbiehanson/XMPPFramework Si oui, alors par defaults implémente datatables de base et il vous suffit de faire des changements mineurs pour get le message de chat …