【问题标题】:core-data NSDate searching for unique days and sorting核心数据 NSDate 搜索独特的日子和排序
【发布时间】:2010-04-12 10:06:41
【问题描述】:

关于这个地方的 NSDates 上有很多信息,但我还没有找到一个明确的解决方案。

我有一个Event 实体列表,每个实体都可能有很多EventSessionTimes。

Event > EventSessionTime

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

为了实现这一点,我目前有 2 个 NSDates - 一天和一次 - 以及一些过于复杂的搜索/排序。我想删除这些多余的信息。

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

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

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

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

谢谢。

【问题讨论】:

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


    【解决方案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>];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多