检查NSFetchedResultsController / Core Data中的现有值

时间:2011-07-02 18:32:18

标签: iphone ios cocoa core-data nsmanagedobject

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

不幸的是,我不能保证服务器不会给我回复我以前没有收到并存储在我的核心数据库中的消息。

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

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

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

任何帮助?

1 个答案:

答案 0 :(得分:3)

看起来这就是我需要的:

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

这让我在没有实际查询的情况下重新计算 - 更好。