在遍历已完成的 NSManagedObject 时如何应用谓词?

How do you apply a predicate while traversing through a fulfilled NSManagedObject?

我正在尝试在使用已在上下文中实现的 NSManagedObject 遍历一对多关系时应用谓词。我考虑过将集合转换为数组然后应用过滤算法,但这会触发一堆我不想要的错误,因为集合中可能有 500 多个对象。是否有可能在通过 NSManagedObject 访问此 NSSet 故障时,我可以将谓词或过滤器应用于集合并仅满足这些故障?

不是过滤集 objectA.b,而是使用反向关系上的提取谓词来提取 B

NSPredicate(format: "a == %@ AND …", objectA) // to-one

NSPredicate(format: "a CONTAINS %@ AND …", objectA) // to-many

过滤关系中的对象是正确的。它 far 比单独获取效率更高。我从同一个球场(100-2000 个实体)的关系大小的个人经验中了解到这一点,并发现在进行另一次获取与过滤关系之间的速度差异大约为 10 倍。