Ios 如何通过XMPPFramework设置XMPPMessage的delayedDeliveryDate属性?

Ios 如何通过XMPPFramework设置XMPPMessage的delayedDeliveryDate属性?,ios,xmpp,xmppframework,Ios,Xmpp,Xmppframework,我正在根据XEP-0313(消息存档管理)和XMPPFramework实现接收存档的XMPP消息。在我的XMPPMessageArchiveManagementDelegate中,我使用适当的委托方法逐个接收消息: public func xmppMessageArchiveManagement(_ xmppMessageArchiveManagement: XMPPMessageArchiveManagement, didReceiveMAMMessage message: XMPPMessa

我正在根据XEP-0313(消息存档管理)和XMPPFramework实现接收存档的XMPP消息。在我的XMPPMessageArchiveManagementDelegate中,我使用适当的委托方法逐个接收消息:

public func xmppMessageArchiveManagement(_ xmppMessageArchiveManagement: XMPPMessageArchiveManagement, didReceiveMAMMessage message: XMPPMessage) { }
在收到的XMPP消息中,我有一个XML元素用于消息本身,另一个XML元素用于延迟交付日期,我可以将其转换为时间戳:

guard let timestamp = delayElement.attribute(forName: "stamp") else { return }

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"

guard let delayedDeliveryDate = dateFormatter.date(from:timestamp.stringValue)
我还能够从message XMPP元素成功创建XMPPMessage对象:

let xmppMessage = XMPPMessage(from: messageElement)
问题是我不明白如何设置XMPPMessage对象的延迟交付日期。最后一个有一个属性delayedDeliveryDate,但我不能仅仅设置它,因为它的状态是“仅获取”:

// xmppMessage.delayedDeliveryDate = delayedDeliveryDate
// It doesn't work because 'delayedDeliveryDate' is a get-only property

我试图找到一个初始化器,我可以把延迟的交货日期传递给,但是我在XMPPMessage类的可用初始化器中找不到这个参数,我不知道如何使用可用参数来提供日期,如果没有这些参数,我将无法对消息进行正确排序。

最后,我能够绕过设置的delayedDeliveryDate属性的必要性来解决我的问题XMPPMessage。我只设置了数据库消息对象的适当属性,就足以进行排序了:

let dbMessage = DBMessage(xmppMessage: xmppMessage, date: delayedDeliveryDate)