Мне нужно отсортировать данные из массива в разделы UITableView с датой в качестве заголовка раздела с любой датой в качестве текущей даты как «Сегодня» и т. Д. - PullRequest
0 голосов
/ 25 марта 2019

Итак, у меня есть массив данных, который был создан со структурой, например:

struct Struct {
  let id = UUID()
  let name: String
  let date: Date
  let amount: Float
}
extension Struct {
  init(name: String, amount: Float) {
    self.name = name
    self.date = Date()
    self.amount = amount
  }
}

Затем он используется для создания массива структур, например:

var structs = [Struct]()
let name = ["struct1", "struct2", "struct3"]
let amount = [1, 2, 3]

let structsCount = name.count
for i in 0..<structsCount {
  structs.append(Struct(name: name[i], amount: Float(amount[i])))
}

Этопросто используется для фиктивных данных, поэтому я понимаю, что дата всегда будет текущей.Я видел предложения по размещению массива structs в словаре с использованием свойства date, а затем сортировку словаря по этой дате.Я просто не могу заставить это работать.

Любые идеи будут с благодарностью.

1 Ответ

0 голосов
/ 25 марта 2019

Я предлагаю вам упорядочить свои структуры в матрицу [[Struct]], чтобы у вас был следующий массив [[Struct(name: 1, date: 20-10-2019, amount: 1), Struct(name: 2, date: 20-10-2019, amount: 2)], [Struct(name: 3, date: 20-10-2019, amount: 3)], ...]

, затем вы можете использовать его для заполнения UITableView.

. Вы можетеделать с кодом ниже

//Since Set contains unique values, you will get all dates
let dates = Set(structs.map { $0.date })
var resultStructs: [[Struct]] = []
for date in dates {
    var array: [Struct] = []
    for element in structs {
        if date == element.date {
            array.append(element)
        }
    }
    resultStructs.append(array)
}

Теперь resultStructs будет содержать массив [[Struct]], упорядоченный по дате.Сортируйте это, чтобы получить правильный заказ и заполнить UITableView

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