Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在XMPPFrameWork ios的CoreData中保存XMPPMessage_Ios_Save_Message_Xmppframework - Fatal编程技术网

在XMPPFrameWork ios的CoreData中保存XMPPMessage

在XMPPFrameWork ios的CoreData中保存XMPPMessage,ios,save,message,xmppframework,Ios,Save,Message,Xmppframework,我正在开发一个聊天应用程序并使用xmppframework。现在需要将消息存储在持久性存储器中。谁能告诉我如何在IOS中存储和检索CoreData中的消息 你在用什么 如果是,那么默认情况下它实现核心数据,您只需做一些小的更改即可获得聊天信息 由于您使用的是github/robbiehanson/XMPPFramework,因此在初始化过程中很容易存储传入和传出消息: //this code init your XMPPStream xmppStream = [[XMPPStream alloc

我正在开发一个聊天应用程序并使用xmppframework。现在需要将消息存储在持久性存储器中。谁能告诉我如何在IOS中存储和检索CoreData中的消息

你在用什么
如果是,那么默认情况下它实现核心数据,您只需做一些小的更改即可获得聊天信息

由于您使用的是github/robbiehanson/XMPPFramework,因此在初始化过程中很容易存储传入和传出消息:

//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()];
要检索保存的消息,以下是我的项目中的示例代码:

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"

是的,我正在使用这个链接。如何在数据库中存储消息。请告诉我,有XMPPMessage存档模型。。研究这个。。消息首先被存储到那个。。用户可以从这个…hi AdrianHou。。。实际上我正在-(void)xmppStream:(xmppStream*)sender direceivemessage:(XMPPMessage*)message中接收消息。。。现在开始介绍如何在XMPPMessageArchivingCoreDataStorage中保存我的消息…由于未捕获的异常“NSInvalidArgumentException”,我将终止应用程序,原因:“+entityForName:nil不是合法的NSManagedObjectContext参数,正在搜索实体名称“XMPPMessageArchiving\u Message\u CoreDataObject”请帮助调试此异常Hello@Adrian,我如何对MUC执行相同操作?Hello@AdrianHou,我正在使用您的代码,但这不起作用。您能帮助我吗?