2010-05-03 72 views
2

我执行核心数据提取指定的谓词如下:核心数据提取仅返回唯一的管理对象

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"identifier IN %@", favoritesIDs]; 

当存在favoriteIDs阵列中重复的项目,该找取请求仅返回1级管理的对象。我如何确保获取多个实例?谢谢。

回答

3

对上下文执行提取请求永远不会为任何给定的托管对象上下文返回多个实例;您将不得不以其他方式管理虚拟实例的数量。实际上,以前从上下文中获得的任何故障对象都会在随后对上下文执行的请求中产生该对象的同一实例(因此即使执行多个请求,您也可能会得到同一个对象实例)。

+0

请注意,这仅适用于使用单个“NSManagedObjectContext”的情况。当你有多个'NSManagedObjectContext'时,比如在多线程环境中,每个'NSManagedObjectContext'有一个实例。 – 2010-05-03 15:27:02

+0

@Marcus S. Zarra:每个MO上下文需要一个实例;当然,管理对象在这种情况下是没有意义的。编辑。 – 2010-05-04 04:33:29

相关问题