0

我有两个收藏:

- 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
4

2 回答 2

0

如果我正确理解您的问题,您希望获取所有“发布”对象,但post.comments不应该是核心数据存储中定义的整个评论集,而只是未删除的评论集。

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

于 2012-09-04T10:58:28.507 回答
0

解释一下您不想从 CD 中检索“已删除”评论的动机可能是值得的,因为当您需要使用它们时,您可以很容易地以编程方式将它们排除在外。卷是否足以成为性能负担?

在任何情况下,都应该可以创建一个NSArrayController, 依次绑定到每个评论集合,但设置一个 fetch 谓词以排除“已删除”的评论。

有关此主题的更多信息,请参阅苹果文档- 祝你好运!

于 2012-09-04T17:06:45.213 回答