检查 NSFetchedResultsController / Core Data 中的现有值

Posted

技术标签:

【中文标题】检查 NSFetchedResultsController / Core Data 中的现有值【英文标题】:Checking for existing value in NSFetchedResultsController / Core Data 【发布时间】:2011-07-02 18:32:17 【问题描述】:

我有一些代码调用 API 并返回一组结果,我们称它们为“消息”对象。每条消息都有一个唯一的 ID。

很遗憾,我不能保证服务器不会返回我以前没有收到并存储在我的核心数据数据库中的消息。

唯一 ID 在我的“消息”实体中设置为 NSNumber 字段。

有没有办法“即时”检查数据库以查看是否已经存在具有给定唯一 ID 的“消息”?

目前,每次我需要检查时,我都会创建一个帮助对象的实例,并且只需创建一个 NSFetchedResultsController 通过 NSPredicate 返回过滤后的结果。如果返回任何结果,我继续前进,或存储在数据库中。我怀疑这是一种缓慢的方法...

有什么帮助吗?

【问题讨论】:

【参考方案1】:

看来这是我需要的:

NSUInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest error:&error];

这让我在不实际执行查询的情况下返回计数 - 好多了。

【讨论】:

听起来不错。我想知道您是否可以通过检查该数字字段上的“索引”来提高效率——但前提是您非常频繁地运行此例程。

以上是关于检查 NSFetchedResultsController / Core Data 中的现有值的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 3 中难以配置 NSFetchedResultsController

如何根据计算的属性过滤来自 NSFetchedResultsController 的结果?

为啥 beginUpdates/endUpdates 会重置表视图位置以及如何阻止它这样做?

php 菜单检查子菜单菜单检查子项菜单检查子项菜单检查子项

产检abap是检查啥

Web书写Test Case时需要考虑的检查点