Итак, у меня есть json запрос на получение, который получает все объекты лошади класса Horse. Это успешно работает. У меня есть обработчик завершения, который должен позволить мне снова использовать объект лошадей в другом представлении, где я вызываю запрос getHorses, но когда я пытаюсь получить эти объекты в другой массив, он не добавляет их. Почему это так?
Вот мой код:
func getJSONHorses (completion: @escaping ([Horse])->[Horse]) { //Message<[Horse]>
let url = "http://localhost:8083/horses"
if let url = URL(string: url)
{
let task = session.dataTask(with: url) { data, response, error in
if error != nil || data == nil {
print("Client error!")
return
}
let str = String(decoding: data!, as: UTF8.self)
print(str)
do {
print("nothing")
let json = try JSONDecoder().decode(Message<[Horse]>.self, from: data!)
print(json.model?.count as Any)
// print(json.model as Horse)
// print(json.self.model)
// print(json.model)
print(json.model as Any)
print("something")
completion(json.model!)
} catch {
print("JSON error: \(error)")
print("erroooorrrrrr")
}
}
task.resume()
print("finished")
}
}
Здесь я использую функцию:
print("Startttt")
backEnd.getJSONHorses(completion:{(horse) in
for h in horse {
self.horses.append(h)
}
print(horse.count)
self.horses = horse
//print(horse.count as Any
return horse
})
print(horses.count)
print("END")
Массив лошадей равен 0, даже когда я пытаюсь добавить лошадей к нему.