我有一个Core Data模型,其中Session与具有timestamp属性的Activity有关系。 Session是Group的一部分,如下所示:
A-> 1 2 3 4 5 6 7 8 9
B1 X 1 1 1 X 1 1 1 1
B2 X X Y 2 X 2 2 2 2
B3 3 X 3 3 3 3 3 3 3
所以,这里的组是A1,A2等,Session是A1B1,A1B2等.A之后的这个数字是group.order,B之后的数字是session.order(在数据模型中)。 我使用X标记了已完成活动的会话,最后一个标记为Y(A3B2)的会话。
很明显,会话可以按客户要求进行,没有强制要求。我需要的是一个谓词,它将在最后一个完成之后给我下一个会话。在上面的例子中,那将是A3B3。
我试过这个,但它不适用于Core Data(不支持的聚合函数......)
[NSPredicate predicateWithFormat:@"activity = nil AND
group.order >= activity.timestamp.@max.session.group.order AND
order > activity.timestamp.@max.session.order"]
我实际上不确定它是否是正确的谓词,但没关系,它因为@max而崩溃所以没有多详细说明。我试图弄清楚如何使用SUBQUERY做到这一点,但没有运气。