关于这个地方的大量有关NSDates的信息,但我没有找到明确的解决方案。
我有一个Event
个实体列表,每个实体可能有多个EventSessionTime
个。
Event
< --->> EventSessionTime
在1个表视图中,我想显示具有Events
的唯一天数列表,在另一个表视图中,我想显示特定日期的事件(按时间排序)。
为了达到这个目的,我目前有2个NSDates - 一天和一个时间 - 以及一些过于复杂的搜索/排序。我想删除这些冗余信息。
考虑到这一点,我该怎么做:
1)查找所有具有事件的UNIQUE日,不关心具体时间
2)查找特定日期的所有活动(此处重复)
有关如何更好地实现这一目标的任何提示都会很棒。
感谢。
答案 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>];