如何在 iOS 中通过 xmpp 删除单个聊天?
Posted
技术标签:
【中文标题】如何在 iOS 中通过 xmpp 删除单个聊天?【英文标题】:How to remove single chat through xmpp in iOS? 【发布时间】:2015-05-29 03:54:44 【问题描述】:我正在使用 xmpp 和 ejabberd 在 ios 中开发聊天应用程序。我无法删除单个消息。
这是- (void)removeResources:(NSSet *)value
删除聊天的正确方法吗?删除聊天需要什么参数?
或者我需要从核心数据中删除条目吗?在 Quick Blox 上,我找到了这种方法:
NSSet *mesagesIDs = [NSSet setWithObjects:@"54fdbb69535c12c2e407c672", @"54fdbb69535c12c2e407c673", nil];
[QBRequest deleteMessagesWithIDs:mesagesIDs
如何在没有 quickblox 的项目中使用它?
【问题讨论】:
您要从核心数据中删除本地消息吗? 感谢回复,是的 你收到的是数组中的消息吗? 您是否正在显示来自核心数据的消息? 如果是,那么您有XMPPMessageArchiving_Message_CoreDataObject
消息对象。对吗?
【参考方案1】:
如果你有XMPPMessageArchiving_Message_CoreDataObject
。我认为该对象用于在UITableView
中显示数据,因此您可以使用以下代码直接从核心数据中删除该对象。这里我展示的是删除消息循环。
NSManagedObjectContext *moc = [self managedObjectContext];
for (XMPPMessageArchiving_Message_CoreDataObject *message in messages)
[moc deleteObject:message];
希望对您有所帮助。
【讨论】:
实际上XMPP聊天示例中并没有集成这样的功能。你需要做你自己。 但是您可以参考一下,如何使用XMPPMessageArchivingCoreDataStorage.m -- > - (void)didCreateManagedObjectContext
中提供的代码来实现这一点。这个方法只是展示了如何删除正在撰写的消息。所以你可以参考这个/
我认为这可能是解决方案。谢谢我应该在哪里调用这个方法?
在要删除消息的地方实现并拥有 XMPPMessageArchiving_Message_CoreDataObject 对象。
我将此代码添加到 - (void)tableView:(UITableView *)tableView commitEditingStyle 方法中,我需要通过滑动删除消息。我添加 for (XMPPMessageArchiving_Message_CoreDataObject *message in messages) [moc deleteObject:message]; if (moc == nil) else 。但是 moc 越来越为零以上是关于如何在 iOS 中通过 xmpp 删除单个聊天?的主要内容,如果未能解决你的问题,请参考以下文章
如何在目标c中通过ios中的XMPPFramework连接XMPP服务器
XMPP Farmework 如何在iOS中获取XMPP聊天室列表?