在实体异常中找不到keypath objectID

时间:2014-04-22 22:38:37

标签: ios iphone ipad cocoa core-data

在尝试在objectID之后获取某些对象时,我遇到了这个奇怪的问题。该错误抱怨没有objectID键路径,但托管对象应该响应。错误不会一直抛出,这让我觉得它可能是一个并发问题,虽然我已经仔细检查过,每个上下文都在自己的线程上执行操作。

这是谓词,虽然看起来很明白: [NSPredicate predicateWithFormat:@"objectID == %@", book.objectID]

编辑:关于this回答。我没有尝试使用对象本身,因为多线程的考虑,我需要使用objectID。

1 个答案:

答案 0 :(得分:9)

THIS链接中给出的答案仍然存在。
从某种意义上说,它使用相同的谓词:

NSPredicate* p = [NSPredicate predicateWithFormat:@"SELF = %@",book.objectID];

但您提供objectID作为参数。

CoreData允许在从商店中提取时比较objectID和对象。它可能与objectID用于与托管对象的一对一映射这一事实有关(因此使用SELF,它是谓词保留字而不是属性名称)。 />