核心数据 NSDate 搜索独特的日子和排序
Posted
技术标签:
【中文标题】核心数据 NSDate 搜索独特的日子和排序【英文标题】:core-data NSDate searching for unique days and sorting 【发布时间】:2010-04-12 10:06:41 【问题描述】:关于这个地方的 NSDates 上有很多信息,但我还没有找到一个明确的解决方案。
我有一个Event
实体列表,每个实体都可能有很多EventSessionTime
s。
Event
> EventSessionTime
在一个表格视图中,我想显示具有Events
的日期的唯一列表,在另一个表格视图中,我想显示特定日期的事件(按时间排序)。
为了实现这一点,我目前有 2 个 NSDates - 一天和一次 - 以及一些过于复杂的搜索/排序。我想删除这些多余的信息。
考虑到这一点,我该怎么做:
1) 查找所有具有事件的 UNIQUE 日期,不关心具体时间
2) 查找特定日期的所有事件(此处重复)
任何关于如何更好地实现这一目标的提示都会很棒。
谢谢。
【问题讨论】:
【参考方案1】:我现在有以下关系。还有多余的日期信息..
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>];
【讨论】:
以上是关于核心数据 NSDate 搜索独特的日子和排序的主要内容,如果未能解决你的问题,请参考以下文章