我知道如何通過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」的編碼兼容。 –