Uitableview 按日期和国家/地区对表视图分区进行分组

Uitableview 按日期和国家/地区对表视图分区进行分组,uitableview,core-data,ios4,Uitableview,Core Data,Ios4,我有一个名为事件的核心数据实体,两个相关属性分别称为startDateTime和countryCode。我的问题是表视图中的部分需要按日期和国家代码分组。我已经看到了很多关于如何实现仅按天分组的示例(例如Apple提供的DateSectionTitles),但是当我添加国家代码时,它变得更加复杂 我使用了DateSectionTitles示例中推荐的瞬态sectionIdentifier,这些部分如下所示:“20110928 SE”、“20110929 SE”、“20110928 GB”等 我第

我有一个名为事件的核心数据实体,两个相关属性分别称为startDateTimecountryCode。我的问题是表视图中的部分需要按日期和国家代码分组。我已经看到了很多关于如何实现仅按天分组的示例(例如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是一种可行的方法,还是有一种更聪明的方法?

在NSDate上创建一个类别,使用一种方法将时间从返回日期的日期中剥离出来,例如转换为:

2011-09-29 09:53:28 -0500
……为此:

2011-09-29

然后将排序键设置为
dateAttribute.methodName

嗯,我不知道我可以用那样的圆点。我现在就来试试。哇,真管用!非常感谢TechZen!如果我的名声允许,我会投票的。