как получить последние n записей в CoreData, используя fetchedResultsController - PullRequest
0 голосов
/ 08 марта 2019

У меня есть таблица 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, потому что фактическая таблица очень сложна, я упростил вопрос, чтобы объяснить ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...