使用多对一/一对多关系在Core数据中构造谓词

时间:2019-12-17 13:04:54

标签: ios swift core-data nspredicate

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

因此,该函数应类似于:

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

感谢您的解释。

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

您检索的Book是{in},而Pages位于页面提取请求中。

然后您可以在“图书提取请求”中使用SELF.book来获取LibraryBook

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

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

您可以删除Pages