我有两个系列:
- Post
- Comment
Post.comments = [comment1, comment2, ...]
comment.removed
是一个布尔值。
我想抓取所有帖子,但排除已移除的comments
。有没有办法在不重复OneToMany关系的情况下做到这一点?
以下是我的尝试:
ANY comments.removed == FALSE // Posts that have at least one removed comment
ALL comments.removed == FALSE // Posts that only have unremoved comments
(SUBQUERY(comments, $x, $x.removed == FALSE).@count > 0) // Same as the first one
答案 0 :(得分:0)
如果我正确理解您的问题,您希望获得所有“发布”对象,但post.comments
不应该是核心数据存储中定义的整个注释集,而只是一组注释没有删除。
这对于获取请求是不可能的(据我所知),因为获取请求的结果是托管对象上下文中的对象列表。获取请求无法返回与托管对象上下文中的原始不同的新对象。
答案 1 :(得分:0)
可能值得解释一下您不希望从CD中检索“已删除”注释的动机,当您可以在使用它们时以编程方式轻松地排除它们。音量是否足以成为性能负担?
在任何情况下,应该可以创建一个NSArrayController
,依次绑定到每个评论集合,但设置一个获取谓词以排除“已删除”的评论。
请参阅apple docs on this subject了解更多信息 - 祝您好运!