NsDate によって tableview 内の Core Data オブジェクトを並べ替える方法を知っていますが、これはデフォルトで各オブジェクトの新しいセクションを作成するようです。NSDateFormatter を使用して、中形式の日付で並べ替えたいと思います。どうすればいいですか?
たとえば、同じ日に作成された 3 つのオブジェクトがある場合、それらを同じセクションに配置し、セクション タイトルがその日であるようにします。時間は必要ありません。
各オブジェクトには NSDate プロパティがあります。ご協力いただきありがとうございます。
これは、rgeorge の提案を含む fetchedResultsController にあるコードです。ここで何が欠けていますか?
- (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;
}