我有以下数据模型:
人 - (OneToMany) - >任务 - (OptionalOneToOne) - >完成
我需要一个谓词来告诉我没有不完整任务的人和另一个相反的人。如果存在关联的完成实体并且如果该引用为零则未完成,则完成任务。
我很想使用ALL task.completion = nil
和NONE task.completion = nil
,但这是一个错误,因为核心数据框架将所有内容包装在数组或集合中,并且它们不能包含nils列表,因此真正解决这个问题的唯一方法就是使用SUBQUERYs,这是我的舒适区之外的方式。
另外,我无法在NSPredicate中找到有关SUBQUERY的富有表现力的例子,但我知道答案就在那里,如果这对任何人来说都是微不足道的,请帮我打破这个僵局。
提前致谢
答案 0 :(得分:1)
带有这样的子查询的谓词应该可以工作
SUBQUERY(tasks, $t, $t.completed == nil).@count == 0
找到没有完成任务的所有人。