当我试图在对象 ID 之后获取一些对象时,我遇到了这个奇怪的问题。该错误提示没有 objectID 键路径这样的东西,但托管对象应该对此做出响应。该错误并非始终引发,这让我认为这可能是并发问题,尽管我已经仔细检查并且每个上下文都在其自己的线程上执行操作。
这是谓词,虽然它对我来说看起来很正常:
[NSPredicate predicateWithFormat:@"objectID == %@", book.objectID]
编辑:关于 this回答。我没有尝试使用对象本身,出于多线程考虑,我需要使用 objectID。
最佳答案
THIS中给出的答案链接仍然在这里。
它在您使用相同谓词的意义上成立:
NSPredicate* p = [NSPredicate predicateWithFormat:@"SELF = %@",book.objectID];
但是您提供了 objectID
作为参数。
CoreData 允许在从存储中获取时比较 objectID
和对象。它可能与 objectID
用于到托管对象的一对一映射这一事实有关(因此使用 SELF,它是谓词保留字而不是属性名称) .
关于ios - 在实体异常中找不到 keypath objectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231562/