首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ios中存储聊天历史记录

在ios中存储聊天历史记录
EN

Stack Overflow用户
提问于 2016-03-29 21:00:03
回答 2查看 1K关注 0票数 1

我们使用的是亚马逊Ubuntu服务器,安装了Openfire 4.0.1版本的Apache和PHP,应用程序配置是使用Swift的XCode 7.2,我们使用的库是3.6.6版本的XMPP Framework。我们可以进行单文本聊天,但不能存储聊天历史记录-我们如何维护聊天历史记录并检索它。

EN

回答 2

Stack Overflow用户

发布于 2016-04-01 15:18:25

  • 在您的项目中创建核心数据的XCMODEL schema文件
  • 将您的实体添加到该模型中。这在你的案例中可能是

代码语言:javascript
复制
- MESSAGE entity
- CONTACT entity
- etc (whatever you want to save )
- For each entity in your DB model, you can now add "Attributes" in your Entity (say MESSAGE entity). Attributes can be _created time_, _message text_ etc.
- Make a NSObject extended class which have properties same as your attributes

.h文件@property (非原子,保留) NSNumber * createdAt;.m文件@动态createdAt;

现在您可以使用:核心数据操作方法,如保存NS托管对象等来保存或在DB上进行其他操作。

例如:在数据库中保存具有全名属性的联系人。

DBHandler * dbHandler = DBHandler sharedInstance;

DB_CONTACT* existingContact = [self getContactByKey:@"userId“value:userContact userId];if (existingContact) { return false;} BOOL result = NO;

联系人* insertNewObjectForEntityForName:@"DB_CONTACT" = [NSEntityDescription contact

inManagedObjectContext:dbHandler.managedObjectContext];

contact.fullName = userContact.fullName;NSError *error = nil;result = dbHandler.managedObjectContext保存:& ERROR;if (!result) { NSLog(@"DB error :%@",error);}返回结果;

负责保存在数据库中的方法:

[NSEntityDescription insertNewObjectForEntityForName:@"DB_CONTACT"

inManagedObjectContext:dbHandler.managedObjectContext];

希望这篇文章能给你一些启发。有关更多详细信息,请查看https://github.com/AppLozic/Applozic-iOS-SDK作为消息传递示例应用程序。

票数 4
EN

Stack Overflow用户

发布于 2016-03-31 00:30:05

如果您想要维护聊天本地历史记录,您可以使用coredata来保存所有传入的消息并按正确的顺序发送消息。要恢复聊天历史记录,请使用核心数据中的XMPPUserName (from和to)等参数。要查看openfire服务器上的历史记录,您可以:安装监控服务器插件,转到选项卡“存档”选择其设置并启用“存档一对一聊天”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36285028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档