Непосредственной проблемой является следующая строка:
cellModelArray.append(HPBeneficiaryModel(firstName: model[0].firstName, lastName: model[0].lastName, tel: model[0].beneficiaryNumber, type: .beneficiary))
Вы всегда получаете доступ к первому элементу массива model
при добавлении новых элементов в конец массива.Вам нужно использовать model.last!
вместо model[0]
.
Однако вам следует переключиться на использование Codable
вместо ручного анализа JSON-ответа.
struct Beneficiary: Codable {
let id: Int
let firstName: String
let lastName: String
let beneficiaryNumber: String
enum CodingKeys: String, CodingKey {
case id = "_id", firstName = "firstname", lastName = "lastname", beneficiaryNumber = "internationalFormat"
}
}
Затем создайте сетьзапрос:
URLSession.shared.dataTask(with: request) { (data, response, error) in
guard let dataResponse = data, error == nil else {
print(error?.localizedDescription ?? "Response Error")
return
}
do {
let model = try JSONDecoder().decode([Beneficiary].self, from: dataResponse)
cellModelArray.append(contentsOf: model.map({HPBeneficiaryModel(firstName: $0.firstName, lastName: $0.lastName, tel: $0.beneficiaryNumber, type: .beneficiary)}))
let sectionModel = HPBeneficiarySectionModel(name: "Mes Beneficiaires", modelArray: cellModelArray)
self.sectionArray = [sectionModel]
} catch {
print("error serializing")
}
}.resume()