0

我有一个小功能,可以通过我的核心数据模型中的关系查询对象。

我已经建立了关系的多方关系。但是,我无法弄清楚如何正确设置关系的单数方面,因为它被认为是NSSet,而且我不知道该怎么做。

数据模型

我尝试将对象放在NSSet我想分配给另一个“对多”实体的对象中,但这返回了错误。

我尝试查看文档,发现的唯一示例是多对多关系。

我尝试在 SO 上进行一些搜索,但找不到提出这个特定问题的人。

希望有人能理解我的要求,并帮助我!

编辑:

为了帮助大家形象化,我设置了关系的“shindys”端,但现在我试图设置“user”端,正如你所见,这是一个单一的关系。

编辑:

在下面@Mundi 的回答之后,我将其作为我的数据模型:

在此处输入图像描述

一切都是正确的,我只需要能够获取用户的所有朋友 shindy 以及他们自己的朋友。您可以将其与 Twitter 的主页提要进行比较。

4

1 回答 1

1

在我看来,您的数据模型设置错误。

一个用户可以有许多消息。一条消息至少有两个用户(发件人和收件人)。我不知道 shindy 是什么,但是按照您的设置方式,一个用户只有一个 shindy,可以在多个用户之间共享。

如果这是正确的,您需要更改数据模型的消息部分并使其成为多对多,或者更好地建立两个描述发送者和接收者的关系。

Message                       User
  sender <<-------------------->sentMessages
  receivers <<---------------->>receivedMessages

此外,您应该将用户属性“shindys”重命名为“shindy”,因为它只是单数。既然我们知道 shindy 是一个聚会,您应该将这种关系更改为多对多。

因此,如果每个用户只有一个 shindy(无论是什么,请说明),要按 shindy 对用户进行排序,您可以使用这样的排序描述符

[NSSortDescriptor sortDescriptorWithKey:@"shindy.timePosted" ascending:NO];

但是,如果您想按 shindy 过滤(如果有多个用户,则所有用户都属于一个 shindy),则必须使用谓词,如下所示

[NSPredicate predicateWithFormat:@"ANY shindies.profileID = %@", 
                                                someUser.profileID];

或使用其他方法来识别 shindy。

于 2013-01-26T11:41:17.660 回答