在尝试在objectID之后获取某些对象时,我遇到了这个奇怪的问题。该错误抱怨没有objectID键路径,但托管对象应该响应。错误不会一直抛出,这让我觉得它可能是一个并发问题,虽然我已经仔细检查过,每个上下文都在自己的线程上执行操作。
这是谓词,虽然看起来很明白:
[NSPredicate predicateWithFormat:@"objectID == %@", book.objectID]
编辑:关于this回答。我没有尝试使用对象本身,因为多线程的考虑,我需要使用objectID。
答案 0 :(得分:9)
THIS链接中给出的答案仍然存在。
从某种意义上说,它使用相同的谓词:
NSPredicate* p = [NSPredicate predicateWithFormat:@"SELF = %@",book.objectID];
但您提供objectID
作为参数。
CoreData允许在从商店中提取时比较objectID
和对象。它可能与objectID
用于与托管对象的一对一映射这一事实有关(因此使用SELF,它是谓词保留字而不是属性名称)。 />