私は次のデータモデルを持っています:
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に少なくとも1つのアクティビティがあるすべてのグループを取得する場合、どの述語を作成する必要がありますか?
私の考え:
- 最初にすべてのアクティビティを取得します
- 次に、重複するグループを削除するために、グループをセットに入れます
- セットを配列に変換します
それで:
[NSPredicate predicateWithFormat:@"%@ >= startTime AND %@ <= endTime", theTime]
次に、アクティビティの配列をフェッチします。
for (Activity *activity in activities)
{
[theSet add:activity.group];
}
だから私はtheTimeで少なくとも1つのアクティビティを持つユニークなグループの配列を手に入れましたか?
後処理なしでフェッチを実行する他の方法はありますか?
ありがとう!
編集:
僕にできる:
[NSPredicate predicateWithFormat:@"%@ >= activities.startTime AND %@ <= activities.endTime", theTime]
???