【发布时间】:2015-08-09 06:46:09
【问题描述】:
我想为用户提供使用长按/选择操作一次删除一条或多条消息的功能。
我知道你想知道我到目前为止所做的尝试。但问题是我还没有找到任何关于删除要实施的消息。
感谢任何形式的帮助!
【问题讨论】:
标签: ios objective-c xmppframework
我想为用户提供使用长按/选择操作一次删除一条或多条消息的功能。
我知道你想知道我到目前为止所做的尝试。但问题是我还没有找到任何关于删除要实施的消息。
感谢任何形式的帮助!
【问题讨论】:
标签: ios objective-c xmppframework
您必须从 xmpp 核心数据库中删除消息。 所以 xmpp 创建了名为“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];
}
【讨论】:
@Parthpatel1105 的回答是正确的,尽管正如@Bista 所说,它不会永久删除消息。
执行删除后,任何删除,无论是像@Parthpatel1105 那样完全删除,还是一条消息,这将是相同的,但没有 for 循环,您必须找到要删除的单条消息。您必须保存存储上下文。
这意味着,在做之后:
for (NSManagedObject *managedObject in items) {
[mocObject deleteObject:managedObject];
}
你必须添加一个调用来保存,
在 Swift 中(我用过它的地方):
mocObject.save()
在 Objective-C 中,我认为应该是这样的:
[mocObject save:&error];
【讨论】: