NSPredicate可以使用@max值获取一对多关系实体

时间:2016-10-27 00:20:45

标签: swift core-data nspredicate

我设置了实体StudentAttendance,其中学生可以有很多出勤率,每个出勤者只能有一个学生。每次出席都有一个名为attendanceAt的日期,代表出席日期。

Attendance<->>Student

我想对Students进行查询,以便抓住所有在两个日期之间出勤的学生。我还希望最后的出勤方向是&#34;在&#34;。

这是我到目前为止所得到的:

我可以使用@max。

检查两个日期之间的最近出席情况
NSPredicate(format: "attendances.@max.attendanceAt < %@ AND attendances.@max.attendanceAt > %@", date1! as CVarArg, date2! as CVarArg)

我的问题是attendances.@max.attendanceAt返回日期而不是出勤实体。因此,我不能做attendances.@max.attendanceAt.direction == "in"

之类的事情

我也试过像SUBQUERY()一样搞乱:

NSPredicate(format: "SUBQUERY(attendances, $att, 
                   $att.attendanceAt < %@ 
               AND $att.attendanceAt > %@ 
               AND $att.attendanceAt == attendances.@max.attendanceAt
               AND $att.direction == %@
             ).@count > 0",
 date1! as CVarArg, date2! as CVarArg, "in")

哪个确实有效,无论何时我尝试在SUBQUERY中使用@max进行任何操作,应用程序崩溃。

关于如何用NSPredicate完成我想要的任何想法?

0 个答案:

没有答案