мы создаем приложение чата с использованием XMPP framwork.we использовали «XMPPMessageArchiving_Message_CoreDataObject» для отображения и хранения данных чата. Но иногда получаем одно сообщение несколько раз, и это повторное хранилище сообщений в «XMPPMessageArchiving_Message_CoreDataObject». Так что во время отображения отображается одно сообщение несколько раз.
Метод настройки потока активирует этот модуль, используя следующий код: -
xmppMessageArchivingStorage =
XMPPMessageArchivingCoreDataStorage.sharedInstance()
xmppMessageArchivingModule =
XMPPMessageArchiving(messageArchivingStorage :
xmppMessageArchivingStorage!)
xmppMessageArchivingModule?.clientSideMessageArchivingOnly = true
xmppMessageArchivingModule?.activate(xmppStream!)
xmppMessageArchivingModule!.addDelegate(self, delegateQueue:
DispatchQueue.main)
Получить данные из БД: -
let storage = XMPPMessageArchivingCoreDataStorage.sharedInstance()
let moc: NSManagedObjectContext? =
storage?.mainThreadManagedObjectContext let entityDescription =
NSEntityDescription.entity(forEntityName:
"XMPPMessageArchiving_Message_CoreDataObject", in: moc ??
NSManagedObjectContext())
let request = NSFetchRequest<NSFetchRequestResult>.init(entityName:
"XMPPMessageArchiving_Message_CoreDataObject")
request.predicate = NSPredicate(format: "bareJidStr = %@ AND
streamBareJidStr = %@",
senderJID!,Constants.appDelegate.jabberID!)
request.entity = entityDescription
let messages = try! moc?.fetch(request) as! [AnyHashable]
в массиве "messages" получает всю дублирующую строку сообщения и отображает дублирующееся сообщение.
если у кого-то есть решение для удаления дубликата сообщения в чате, пожалуйста, помогите мне.
Спасибо заранее,