Если вы используете NSFetchedResultsController (как и должно быть, если вы используете Core Data с UITableViewController), то код для этого, по сути, предоставляется для вас.Предполагая, что вы используете шаблон Базовых данных по умолчанию с UITableViewController, вам должен быть предоставлен метод fetchedResultsController
.Чтобы изменить метод, в котором таблица сортирует свои элементы, просто используйте это:
- (NSFetchedResultsController *)fetchedResultsController
{
...
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Date" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
...
}
Где @"Date"
должен быть заменен на то, что вы назвали своей записью Базовых данных с сохранением даты.Это должно сортироваться точно так, как вы хотите, и является «подходящим» способом сделать это, если вы используете NSFetchedResultsController.Если вы этого не сделаете, вам придется использовать timeIntervalSinceReferenceDate
для сравнения и сортировки каждой NSDate, как сказал tassinari.Я рекомендую вам использовать NSFetchedResultsController, хотя.