在具有多对一/一对多关系的核心数据中构造谓词
Posted
技术标签:
【中文标题】在具有多对一/一对多关系的核心数据中构造谓词【英文标题】: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
属性。
【参考方案1】:
这应该可以解决问题(您可以删除SELF.
,但这是为了便于解释):
NSPredicate(format: "SELF.book.library.id == %@", id)
您检索Book
Pages
是“in”,SELF.book
在 Pages Fetch Request 中。
然后您可以在 Book Fetch Request 中检索 Library
Book
和 SELF.library
。
您可以使用SELF.id
在Library
获取请求中从其id
中检索Library
。
通过组合,您可以使用SELF.book.library.id
从Pages
中检索Library
。
您可以删除SELF.
。
【讨论】:
以上是关于在具有多对一/一对多关系的核心数据中构造谓词的主要内容,如果未能解决你的问题,请参考以下文章