CoreData-获取帖子和仅他们未删除的评论



我有两个集合:

- 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

如果我正确理解您的问题,您希望获得所有"Post"对象,但post.comments不应该是核心数据存储中定义的全部注释集,而应该是未删除的注释集。

这在fetch请求中是不可能的(据我所知),因为fetch请求的结果是托管对象上下文中的对象列表。获取请求不能返回与托管对象上下文中的原始对象不同的对象。

也许有必要解释一下你不想从CD中检索"已删除"的评论的动机,因为在使用它们时,你可以很容易地通过编程将它们排除在外。音量是否大到足以成为性能负担?

在任何情况下,都应该可以创建一个NSArrayController,依次绑定到每个注释集合,但设置一个提取谓词以排除"已删除"的注释。

请参阅关于这个主题的苹果文档了解更多-祝你好运!

最新更新