У меня есть таблица Student, которая имеет два атрибута Name и DateOfBirth.
Я хочу отобразить имена студентов в UITableView в порядке убывания их DateOfBirth, который младше сверху и старше в нижней части списка.
Я создал запрос FetchRequest, который выбирает всех студентов и отображает их в порядке убывания их DateOfBirth.
let studentFetchRequest = Student.fetchRequest()
let dateSortDescriptor = NSSortDescriptor(key: #keyPath(Student.dateOfBirth), ascending: false)
studentFetchRequest.sortDescriptors = [dateSortDescriptor]
let frc = NSFetchedResultsController<Student>(fetchRequest: studentFetchRequest, managedObjectContext: managedContext, sectionNameKeyPath: nil, cacheName: nil)
frc.performFetch()
Теперь у меня есть требование, чтобы мне отображались только последние 15 учеников. Учитывая, что в таблице Стьюдента есть 50 записей.
Я попытался изменить восходящее свойство sortDescriptor на true и добавил fetchLimit со значением 15 в мой studentFetchRequest, чтобы получать только последние 15 студентов.
Он выбирает последних 15 учеников, но меняет порядок, в котором они перечислены в UITableView. то есть старшие ученики сверху, а младшие снизу.
Как я могу изменить fetchRequest и по-прежнему иметь возможность использовать FetchedResultsController для отображения последних 15 студентов в моем UITableView
?
Мне нужно использовать FetchedResultsController, потому что фактическая таблица очень сложна, я упростил вопрос, чтобы объяснить ситуацию.