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

Posted

技术标签:

【中文标题】核心数据:有序关系中第一个元素的谓词【英文标题】:Core Data: Predicate for first element in orderd relationship 【发布时间】:2012-11-15 09:22:25 【问题描述】:

我有这个包含至少一个元素的多对多关系:

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

appointment.invitees 是一个有序关系,导致NSOrderedSet

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

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

我试过了:

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

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

有什么建议吗?

【问题讨论】:

【参考方案1】:

显然,即使是最专业的 Core Data 专家也无法回答这个问题。

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

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

【讨论】:

你能显示你的代码吗?我有同样的问题 @MertKöksal 不是代码问题,是数据结构问题。 所以你可以帮我解决我的问题吗? ***.com/questions/67437589/… 问题好像被删除了。

以上是关于核心数据:有序关系中第一个元素的谓词的主要内容,如果未能解决你的问题,请参考以下文章

与包含的一对多关系的核心数据谓词

378. 有序矩阵中第K小的元素

[leetcode]378. 有序矩阵中第K小的元素

核心数据关系中对象的谓词

378. 有序矩阵中第 K 小的元素

题目地址(378. 有序矩阵中第 K 小的元素)