我想要实现什么目标?
我有一个包含三个核心数据实体的应用:Ingredients、Cookies 和 CookieIngredients。
- 成分是鸡蛋、牛奶、黄油等,还有一个 bool 值,表示我的厨房里是否有该成分。
- cookies 是巧克力片、燕麦葡萄干等。
- CookieIngredients 是每个 Cookie 所需的每种成分的单位。
我希望能够根据我厨房中所指示的成分来显示我可以制作哪些 cookies 。
我做了什么?
我已成功使我的应用程序达到所有这些实体都在核心数据中进行管理的状态,并且我能够毫无问题地将成分标记为“在我的厨房中”。我可以根据成分和标题搜索 Cookie。
我被困在哪里了?
我无法找到任何示例来帮助理解如何创建 NSPredicate 以将我的 FetchedResultsController 限制为仅 Cookie,其中所有 CookieIngredient 的成分都在“我的厨房里”。如果这是一个使用 MySQL 数据库的 Web 应用程序,我可以通过一些内部联接来做到这一点,但我不知道如何使用 Core 来实现类似的东西 - 或者即使有可能做这样的事情数据。
最佳答案
像下面这样的谓词应该有效:
let predicate = NSPredicate(format: "ALL ingredients.inKitchen = YES")
这假设您的 Cookie
实体具有 ingredients
关系,并带有名为 inKitchen
的 boolean
标志。
关于Swift 核心数据 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47747178/