核心数据NSDate搜索独特的日子和排序

时间:2010-04-12 10:06:42

标签: iphone-sdk-3.0 core-data nsdate

关于这个地方的大量有关NSDates的信息,但我没有找到明确的解决方案。

我有一个Event个实体列表,每个实体可能有多个EventSessionTime个。

Event< --->> EventSessionTime

在1个表视图中,我想显示具有Events的唯一天数列表,在另一个表视图中,我想显示特定日期的事件(按时间排序)。

为了达到这个目的,我目前有2个NSDates - 一天和一个时间 - 以及一些过于复杂的搜索/排序。我想删除这些冗余信息。

考虑到这一点,我该怎么做:

1)查找所有具有事件的UNIQUE日,不关心具体时间

2)查找特定日期的所有活动(此处重复)

有关如何更好地实现这一目标的任何提示都会很棒。

感谢。

1 个答案:

答案 0 :(得分:2)

我现在有以下关系。还有冗余的日期信息..

Event< --->> EventSessionTime<< - > EventDay

1)查找所有具有事件的UNIQUE日,不关心具体时间

我可以创建具体日期,我知道时间。我的应用程序的本地化特性意味着我可以安全地执行此操作。

...
[NSEntityDescription entityForName:@"EventSessionTime" inManagedObjectContext:self.managedObjectContext];
...
NSArray *res = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[self myResultArray:[res valueForKeyPath:@"@distinctUnionOfObjects.eventDay.day"]];

您可以推断我的属性和关系名称。

2)查找特定日期的所有活动(此处重复)

我使用以下谓词来查找指定日期的所有事件。它不会返回重复项

[NSPredicate predicateWithFormat: @"(SUBQUERY(eventTime, $x, $x.eventDay.day == %@).@count > 0)", <the day selected from the previous list>];