【问题标题】:How to remove single chat through xmpp in iOS?如何在 iOS 中通过 xmpp 删除单个聊天?
【发布时间】: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 消息对象。对吗?

标签: ios xmpp ejabberd


【解决方案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 越来越为零
猜你喜欢
  • 2014-05-31
  • 2015-10-26
  • 2013-08-14
  • 2019-09-24
  • 2016-02-25
  • 2019-08-13
  • 1970-01-01
  • 2012-08-17
  • 2015-12-28
相关资源
最近更新 更多