【问题标题】:Constructing predicate in Core data with many-to-one / one-to-many relationships在具有多对一/一对多关系的核心数据中构造谓词
【发布时间】:2019-12-17 13:04:54
【问题描述】:

我找不到执行此操作的方法:我只想获取库中的所有页面。

所以,函数应该如下所示:

func pages(inLibrary id: String) -> [Page] {
    //What is the predicate should I use to achieve this ? 
}

感谢您的解释。

【问题讨论】:

  • 那么,"book.library == %@", id?
  • 谢谢拉姆,我只是愚蠢:/。我试图用“SUBQUERY”做,只是找到相同的结果,但你的更好:) 从我的例子中,更多的是“book.library.id == %@”,id 或“book.library == % @", 库对象
  • 确实,我错过了 Library 的 id 属性。

标签: ios swift core-data nspredicate


【解决方案1】:

这应该可以解决问题(您可以删除SELF.,但这是为了便于解释):

NSPredicate(format: "SELF.book.library.id == %@", id)

您检索Book Pages 是“in”,SELF.book 在 Pages Fetch Request 中。

然后您可以在 Book Fetch Request 中检索 Library BookSELF.library

您可以使用SELF.idLibrary 获取请求中从其id 中检索Library

通过组合,您可以使用SELF.book.library.idPages 中检索Library

您可以删除SELF.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多