我有以下数据模型:
Group(name, color, activities*) // one group may have many activities
Activity(startTime, endTime, location, Group*) // startTime and endTime are NSDate, group is an inverse relationship
因此,如果我想获得在指定 NSDate 上至少有一项活动的所有组,比如 theTime,我应该构造什么谓词?
我的想法:
- 首先获取所有活动
- 然后将他们的组放入一个集合中以删除重复的组
- 将 Set 转换为数组
所以:
[NSPredicate predicateWithFormat:@"%@ >= startTime AND %@ <= endTime", theTime]
然后获取一系列活动:
for (Activity *activity in activities)
{
[theSet add:activity.group];
}
所以我得到了一组在 theTime 上至少有一个活动的独特组?
有没有其他方法可以在不进行后处理的情况下进行提取?
谢谢!
编辑:
我可不可以做:
[NSPredicate predicateWithFormat:@"%@ >= activities.startTime AND %@ <= activities.endTime", theTime]
???