我有一个从 Core Data 获得的可变托管对象数组——我们称它们为 ObjectA。ObjectA 与 ObjectB 具有多对多的关系,因此每个 ObjectA 都有一个 ObjectB 的 NSSet。ObjectB 与ObjectC 是一对多的关系,即每个ObjectB 都有一个ObjectC。
现在这很清楚(希望如此),这就是我想要做的:我想根据给定 ObjectC 的名称过滤我的 ObjectAs 数组。换句话说,我从 Core Data 中所有我的 ObjectAs 的数组开始,我想只以拥有 ObjectB 的 ObjectAs 结束,该 ObjectB 的 ObjectC 被命名为“Potatoes”(例如)。我希望这是有道理的......这是一个虚拟的情况:一个人(ObjectA)可以拥有很多歌曲(ObjectB),而歌曲可以被很多人拥有。我有每个人的数组,但我只想要拥有属于特定专辑(objectC)的歌曲的人。希望这有助于澄清情况。
那么,有人对如何根据给定的 ObjectC 最好地过滤我的 ObjectAs 有任何建议吗?我当然可以用一堆循环和 if 来强制它,但我想知道是否有一种更有效的方法可以用更少的步骤来完成它,比如 NSPredicate (我以前用过,但不是在多层像这样的情况)。
任何建议,将不胜感激!
编辑
这是我的模型图: