【问题标题】:How to delete chats from XMPP Message Storage?如何从 XMPP 消息存储中删除聊天?
【发布时间】:2016-02-25 16:25:19
【问题描述】:

我有一个打开的聊天控制器,我想从我的设备中删除它们。

我试试这个代码:

let moc = OneMessage.sharedInstance.xmppMessageStorage?.mainThreadManagedObjectContext
    let entityDescription = NSEntityDescription.entityForName("XMPPMessageArchiving_Message_CoreDataObject", inManagedObjectContext: moc!)
    let request = NSFetchRequest()
    let predicateFormat = "bareJidStr like %@ "

    let predicate = NSPredicate(format: predicateFormat, user.jidStr)
    request.predicate = predicate
    request.entity = entityDescription

    do {
        let results = try moc?.executeFetchRequest(request)
        print("Results: \(results)")
        for message in results! {
            print("Message is: \(message)")
            moc?.deleteObject(message as! NSManagedObject)
        }
    } catch _ {
    }

但是当我删除它们时,我在日志中看到它们已被删除,但是当我重新启动我的应用程序时,它们又出现了。因此,它会暂时删除它们,直到应用重新启动。

这里有什么问题?谁能帮我解决这个错误?

有问题可以在cmets问我

【问题讨论】:

    标签: ios objective-c swift xmpp xmppframework


    【解决方案1】:

    您有一个单独的 XMPPMessageArchiving 实体的 NSManagedObjectContext 用于您即将对数据库执行的更改。

    您的代码没有问题,这是因为您正在删除对象但没有执行保存操作,发送保存并执行整个 mergeChangesFromContextDidSaveNotification。

    在你的情况下应该是:

    斯威夫特:

    do {
        let results = try moc?.executeFetchRequest(request)
        print("Results: \(results)")
        for message in results! {
            print("Message is: \(message)")
            moc?.deleteObject(message as! NSManagedObject)
        }
    
        moc.save(nil) /** This line will update the main database **/
    
    } catch _ {
    }
    

    目标 C:

    NSError *error;
    NSArray *fetchedObjects = [moc executeFetchRequest:fetchRequest error:&error];
    
    for (NSManagedObject *object in fetchedObjects) {
        [moc deleteObject:object];
    }
    
    if (![moc save:&error]) {
        NSLog(@"Error in deleting conversation thread %@", error);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-24
      • 2019-09-23
      • 2013-08-28
      • 1970-01-01
      • 2014-01-05
      • 2015-08-09
      • 1970-01-01
      • 2019-03-02
      • 2012-06-03
      相关资源
      最近更新 更多