如何在 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服务器

如何在 iOS 中使用 XMPP 删除或退出特定群聊

XMPP Farmework 如何在iOS中获取XMPP聊天室列表?

如何在 iOS 中请求 Facebook XMPP 聊天权限?

IOS XMPP如何使用特定用户名和聊天进入下一个控制器

如何在 iOS 应用中实现 webRTC