Нет, вы не можете отсортировать элемент rowDates
при создании объекта SectionDate
. List
- это тип Realm, который не (обязательно) хранит список в отсортированном виде.
Вам нужно будет отсортировать rowDates
объекты по каждому запросу объекта. Одним из предложений может быть добавление вычисляемого свойства в класс SectionDate
(вычисляется - не сохраняется), который возвращает запрос, отсортированный по мере необходимости. Затем получите доступ к этому свойству в функции cellForRowAt
. E.g.:
extension SectionDates
{
var sortedRowDates
{
return rowDates.sorted(byKeyPath: "date", ascending: isAscending)
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
...
cell.rowDate = tableViewData[indexPath.section].sortedRowDates[indexPath.row]
...
}
Это, конечно, означает, что запрос выполняется для каждой ячейки, но это нормально. Есть и другие решения, такие как создание статической копии данных в viewDidLoad, но я не думаю, что в этом есть необходимость, если вы не столкнетесь с какими-либо конкретными проблемами.