核心数据:谓词顺序关系中的第一个元素

时间:2012-11-15 09:22:26

标签: ios core-data many-to-many predicate nsorderedset

我有这个to-many关系,其中至少包含一个元素:

Appointment <<------>> Invitee

appointment.invitees有序关系,产生NSOrderedSet

在由获取的结果控制器控制的表视图中,我列出了约会,以及被邀请者集的第一个元素。

现在,我希望使用NSPredicate按受邀者的姓名搜索此列表。但是如何在谓词中引用有序列表的第一个元素

我试过了:

fetchRequest.predicate = [NSPredicate predicateWithFormat:
       @"invitees[FIRST].lastName CONTAINS[cd] %@", searchTerm];

但我收到unimplemented SQL generation for predicate错误。这是有道理的,因为结果是一个集合,但不是严格的数组。不过,我认为sqlite商店必须对订单进行建模,因此它应该是可检索的。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

显然,这个问题甚至连最专业的核心数据学者都无法回答。

解决方法是将第一个元素建模为单独的一对一关系,将其余元素建模为基于相同相关实体的可选多对多关系。

Appointment <<------>  mainInvitee        (Invitee)
            <<------>> additionalInvitees (Invitee)