iPhone CoreData:如何按天分组获取的结果?

Ano*_*ous 8 iphone group-by date core-data

我正在使用CoreData开发iPhone应用程序.我的一个实体有一个名为'time'的NSDate属性.它存储时间到分钟/秒.作为我的部分我想要有一天的日期.因此,如果有条目'2010-06-14 8:00'和'2010-06-14 11:00',我希望它们被分组为'2010-06-14'.

目前我只使用@"time"作为我的sectionNameKeyPath:

NSFetchedResultsController *aFetchedResultsController =
    [[NSFetchedResultsController alloc]
    initWithFetchRequest:fetchRequest
    managedObjectContext:managedObjectContext
    sectionNameKeyPath:@"time"
    cacheName:@"Root"];
Run Code Online (Sandbox Code Playgroud)

是不是有一个技巧可以按时分组?或者我必须使用纯SQL和" GROUP BY date(time, '%Y-%m-%d')"之类的东西?

小智 15

解决这个问题:

- (NSString *)day;使用如下实现为我的Entity类添加了方法:

- (NSString *)day {
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    dateFormatter.dateStyle = NSDateFormatterFullStyle;

    return [dateFormatter stringFromDate:self.time];
}
Run Code Online (Sandbox Code Playgroud)

然后我用@"day"作为sectionNameKeyPath在初始化aFetchedResultsController代替@"time"(见上文).