簡體   English   中英

將RSS源導入Core Data時防止重復

[英]Prevent duplicates when importing RSS feed to Core Data

嘗試將RSS源導入Core Data。 導入后,嘗試再次更新Feed時,如何最有效地防止重復。 現在它在解析期間針對數據存儲區檢查每個項目,這不是非常有效。

我查看了Apple的熱門歌曲樣本。 它使用最近最少使用的緩存來進行分類。 但是當每個項目都不同時,緩存根本沒有幫助。

編輯:為了澄清,我已經可以使用guid在feed中唯一標識每個項目。 問題是每次將數百個項目與數據庫進行比較時的性能,當時大多數項目都是重復項目。

導入新行時,可以對現有行運行查詢,以查看它是否已存在。 為此,您NSFetchRequest針對您的實體創建NSFetchRequest ,將謂詞設置為查找guid屬性並將返回的最大行設置為1。

我建議您在導入期間保留此NSFetchRequest ,以便NSFetchRequest導入時可以重復使用它。 如果NSFetchRequest返回一行,您可以更新該行。 如果它沒有返回一行,那么您可以插入一個新行。

如果操作正確,您會發現性能超出了可接受范圍。

你能修改你的核心數據模型嗎?

如果可以的話,我會在每個Feed條目中添加一個“Hash”屬性來唯一標識它。 然后,您可以有效地檢測數據庫中是否已存在特定條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM