代码之家  ›  专栏  ›  技术社区  ›  Ahmed

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

  •  0
  • Ahmed  · 技术社区  · 7 年前

        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中,这样我就不必每次都检索它了

    1 回复  |  直到 7 年前
        1
  •  1
  •   andesta.erfan    7 年前

    fetchvCardTemp 如果给定JID不在存储中,只需获取它的vCardTemp ignoreStorage 错了,你是说我不想使用存储,我想通过XMPPStream获取它。 您应该只使用xmppvCardStorage和它的一个函数 vCardTempForJID

    推荐文章