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"(见上文).