将获取的 XMPPframeWork vCards 保存到 Swift4 中的 CoreData

saving fetched XMPPframeWork vCards into CoreData in Swift4

我能够使用此代码创建和更新 vCard

    let xmppvCardStorage = XMPPvCardCoreDataStorage.sharedInstance()
    let xmppvCardTempModule = XMPPvCardTempModule.init(vCardStorage:xmppvCardStorage!)
    xmppvCardTempModule.activate(self.stream)
    xmppvCardTempModule.addDelegate(self, delegateQueue: DispatchQueue.main)
    let vCard = DDXMLElement(name: "vCard", xmlns: "vcard-temp")
    let vCardTemp = XMPPvCardTemp.vCardTemp(from: vCard)
    vCardTemp.nickname = "john"
    vCardTemp.jid = XMPPJID(string: "john123@www.example.com")

我还可以使用以下代码获取该 vCard:

    let xmppvCardStorage = XMPPvCardCoreDataStorage.sharedInstance()
    let xmppvCardTempModule = XMPPvCardTempModule.init(vCardStorage: xmppvCardStorage!)
    xmppvCardTempModule.activate(self.stream)
    let jID = XMPPJID(string: "john@www.example.com")
    xmppvCardTempModule.addDelegate(self,delegateQueue:DispatchQueue.main)
    xmppvCardTempModule.fetchvCardTemp(for: jID!, ignoreStorage:false)

如您所见,我正在从我的服务器中获取 vCard。这是通过将 ignoreStorage 设置为 false

来完成的

我的问题是 XMPPFrameWork 是否支持将检索到的 vCard 存储在 CoreData 中的方法,这样我就不必每次都检索它

fetchvCardTemp 如果给定的 JID 不在 storage.when 中,则简单地获取 vCardTemp 你将 ignoreStorage 设置为 false 你是说我不想使用存储我想通过 XMPPStream 获取它。 你应该只使用 xmppvCardStorage 和它的一个函数 vCardTempForJID 并简单地传递你最喜欢的 jID 它会 return 它给你