我希望为用户提供使用长按/选择操作一次删除一条或多条消息的功能。
我知道你想知道到目前为止我尝试了什么。但问题是我没有找到任何关于删除要实施的消息的内容。
感谢任何形式的帮助!
答案 0 :(得分:4)
您必须从xmpp核心数据库中删除邮件。 所以xmpp创建了名为core database table的“XMPPMessageArchiving_Message_CoreDataObject”,使用它可以删除消息。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject" inManagedObjectContext:myAppdelObject.Obj_xmppManager.moc];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *items = [mocObject executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *managedObject in items) {
[mocObject deleteObject:managedObject];
}
答案 1 :(得分:0)
@ Parthpatel1105的答案是正确的,尽管正如@Bista所说,它不会永久删除消息。
执行删除后,任何删除(如@ Parthpatel1105那样完全删除)或一条消息,都是相同的,但没有for循环,您必须找到要删除的单个消息。您必须保存存储上下文。
这样做后的意思是
for (NSManagedObject *managedObject in items) {
[mocObject deleteObject:managedObject];
}
您必须添加通话以保存,
在Swift中(我使用过的地方):
mocObject.save()
在Objective-C中,我认为应该是这样的:
[mocObject save:&error];