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



我能够使用此代码创建和更新 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)

如您所见,我正在从服务器获取电子名片。这是通过将ignoreStorage设置为false来完成

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

如果给定的 JID 不在存储中,fetchvCardTemp只是获取给定 JID 的 vCardTemp。当您将ignoreStorage设置为 false 时,您是在说我不想使用存储,我想通过 XMPPStream 获取它。 你应该只使用xmppvCardStorage和它的一个叫做vCardTempForJID的函数,只需传递你最喜欢的jID,它就会把它返回给你

最新更新