у меня есть словарь типа
[String: Object]
, где MyObject
- массив AnotherObject
. Мне нужно отсортировать его, так как мне нужно заполнить UITableView количеством Keys.count
разделов и Object.count
количеством строк в каждом разделе. Я помещаю все ключи в массив, но когда я пытаюсь добавить значения в другой массив, я получаю Thread 1: EXC_BAD_ACCESS (code=1, address=0x8)
.
Это код, который я использую
var dictionary = [String: MyObject]()
var sortedKeys: [String]?
var sortedValues = [MyObject]()
func sortItems() {
self.sortedKeys = self.dictionary.keys.sorted(by: >)
let sortedDict = self.dictionary.sorted(by: {$0.key > $1.key})
for (_, value) in sortedDict {
print(value)
self.sortedValues.append(value)
}
}
В цикле for, когда я не пытаюсь добавить значения в массив, он печатает все отсортированные значения, проблема возникает, когда я хочу, чтобы они были в массиве.
Редактировать
Словарь выглядит так:
struct Object: Decodable {
let elements: [AnotherObject]
}
struct AnotherObject: Decodable {
let time, Id, Status: Int?
let date, startTime, endTime: String?
}
dictionary: [String: Object]
Таким образом, ключи являются числами (представляющими дни), и каждый день имеет объект с (по крайней мере) один другой объект.
Я получаю JSON от API.
Заранее спасибо