【发布时间】:2011-09-28 12:00:50
【问题描述】:
我有一个名为 Event 的核心数据实体,两个相关的属性名为 startDateTime 和 countryCode。我的问题是我的表格视图中的部分需要按日期和国家代码分组。我已经看到很多关于如何仅按天分组的示例(例如 Apple 的 DateSectionTitles),但是当我添加国家代码时,它变得更加复杂。
我使用 DateSectionTitles 示例中推荐的临时 sectionIdentifier,这些部分看起来像这样:“20110928 SE”、“20110929 SE”、“20110928 GB”等。
我第一次尝试这个:
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"startDateTime" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"countryCode" ascending:NO];
sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
[sortDescriptor1 release];
[sortDescriptor2 release];
但这不起作用,因为 startDateTime 具有导致索引不匹配的时间组件。我需要的是在没有时间组件的情况下对 startDateTime 进行排序。
显而易见的解决方案是将日期和时间分成两个不同的实体属性。但是当我想到它时,这是行不通的,因为日期是相对于时区的。当手机更改时区时,日期和时间属性将无效。
我也尝试子类化 NSSortDescriptor 并创建自定义 compareObject 函数,但它似乎从未被调用,而且我找不到任何工作示例。
你会如何解决这个问题?子类 NSSortDescriptor 是要走的路,还是有更聪明的方法?
【问题讨论】:
标签: uitableview core-data ios4