我知道如何通过NsDate对tableview中的核心数据对象进行排序,但默认情况下这似乎为每个对象都创建一个新节。我想用NSDateFormatter按照中间格式排列日期。我将如何做到这一点?核心数据按格式化日期排序tableview
例如,如果我在同一天创建了3个对象,我希望它们位于同一节中,节标题是那一天,不需要时间。
每个对象都有一个NSDate属性。谢谢你的帮助。
这是我在fetchedResultsController中使用rgeorge的建议的代码。我在这里错过了什么?
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil) {
NSLog(@"get old fetched controller");
return fetchedResultsController;
}
else{
NSLog(@"get new fetched controller");
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"InTextEntity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *dateDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateModified" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:dateDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"mediumFormattedDate" cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSError *error = nil;
if (![fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
return fetchedResultsController;
}
非常感谢!我会在早上尝试这个,让你知道它是怎么回事! –
有一个问题,在mediumFormattedDate中设置self.date的值是什么? –
这是我得到的错误:实体InTextEntity不是关键字值“mediumFormattedDate”的编码兼容。 –