繁体   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