ios - 在实体异常中找不到 keypath objectID

标签 ios iphone ipad cocoa core-data

当我试图在对象 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/

相关文章:

ios - 如何在 swift 和 xcode 中获取用户输入

iphone - 输入有效值后如何启用 UIButton

iphone - 是否有在 iOS 上使用自定义实时 EQ 播放音乐的框架?

iphone - 异步或在后台注册 Apple 推送通知

ios - 如何以编程方式创建 View 层次结构?

ios - 如何让UIDocumentInteractionController可以在其他应用程序中打开文件,而不是将其复制到其他应用程序中?

ios - 如何使用 Swift 将图像更改为 MKAnnotation

ios - 从元数据中提取图像图片样式

ios - 使用 Rest API Swift 3

iphone - 我可以在 iPhone 应用程序中使用 Google Maps API(Places API)来查找我附近的位置吗?