0

我有两个核心数据实体,一个经理和一个员工。每个经理只有两名员工。员工有一个小时整数,表示他们何时打卡和何时打卡。如何创建一个谓词来检查经理是否有在特定时间之前打卡并在特定时间之后打卡的员工?

如果关系表示为数组而不是集合,我可以这样做:

[NSPredicate predicateWithFormat:@"SELF.employees[0] > %i && SELF.employees[1] < %i", clockIn, clockOut];

我还可以将签入时间和签出时间分开为具有相同属性的两个独立实体,但这似乎与 OOP 的整个概念背道而驰。

[NSPredicate predicateWithFormat:@"SELF.employees.in.hour > %i && SELF.employees.out.hour < %i", clockIn, clockOut];

我还尝试向 Manager 添加一个返回“in”的类别,但是我得到一个Keypath not found in entity...错误。

4

1 回答 1

1

您可以使用聚合运算符ALLANY和:SOMENONE

[NSPredicate predicateWithFormat:@"ALL employees.inTime > %i && ALL employees.outTime < %i", clockIn, clockOut];

您还没有说 inTime 和 outTime 属性的名称是什么,因此请酌情替换。

于 2013-09-01T06:45:43.500 回答