![](/img/trans.png)
[英]CoreData fetched object becomes nil when tried to update in completion handler - Swift4
[英]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
簡單地獲取了vCardTemp對於給定的JID如果它不是在你設定的storage.when ignoreStorage
假你說的,我不希望使用存儲,我想通過XMPPStream去取。 您應該只使用xmppvCardStorage及其功能之一,即vCardTempForJID
然后簡單地傳遞您喜歡的jID,它將其返回給您
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.