Порядок изменен, когда я добавляю значения в словарь из модели в Swift - PullRequest
1 голос
/ 17 июня 2020

Я сгруппировал данные по дате и добавил значения к AppointmentDateModel - tableValues. Поскольку данные содержат одну и ту же дату с данными нескольких встреч, я сгруппировал их. Но когда я добавляю значения, он автоматически сортирует или меняет порядок.

Как мне установить порядок в словаре, чтобы его нельзя было изменить? Или я группирую их правильно?

Мои основные модели - DownloadEntity и appointmentDownloadModel, а затем для сгруппированных я использую AppointmentDateModel

объявление:

var mDownloadEntity: [DownloadEntity] = []
var tableValues:[AppointmentDateModel] = []
var dict : [Int64:[AppointmentDownloadModel]] = [:]

Добавление кода:

mDownloadEntity.forEach { apDate in
    print(apDate)
    var value = dict[apDate.appdate]
    if(value == nil){
        dict.updateValue([apDate.appointmentDownloadModel!], forKey: apDate.appdate)
    }else{
        value?.append(apDate.appointmentDownloadModel!)
        dict.updateValue(value!, forKey: apDate.appdate)
    }
}

dict.forEach{map in
    let appointmentDateModel = AppointmentDateModel(appointmentDate: map.key, entities:map.value)
    tableValues.append(appointmentDateModel)
}

Модели:

struct AppointmentDownloadModel: Codable{
    var appointmentModel: Appointment
    var progress: Int = 0
    var failedList: [Int: String] = [:]
    var isFinished: Bool = false
}

struct DownloadEntity: Codable {

    let id: Int
    var appdate: Int64
    var userId: Int
    var dFirmId: Int
    var appointmentId: Int
    var appointmentDownloadModel: AppointmentDownloadModel?
}

struct AppointmentDateModel: Codable {
    let appointmentDate:Int64
    var entities:[AppointmentDownloadModel]
}
...