Я хочу создать индикатор прогресса для загрузки контактов из API.
Я использую кодируемый, и у меня тысячи записей.
HTTPManager.shared.get(urlString: ContactManager.createURL(), completionBlock: {(data: Data?) -> Void in
let decoder = JSONDecoder()
if let d = data{
do {
let userData = try decoder.decode([Contact].self, from: d)
self.isFetchingData = false
print ("done", userData)
} catch let error {
print ("Error in reading data", error)
}
}
}
)
Для получения информации, вот моя структура контактов
struct Contact : Codable {
let firstname : String?
let url : String?
let lastname : String?
let profilepic : String?
let favorite: Bool?
let id: Int?
enum CodingKeys : String, CodingKey {
case firstname = "first_name"
case url
case lastname = "last_name"
case profilepic = "profile_pic"
case favorite = "favorite"
case id
}
}
Это не домашняя работа, я просмотрел документацию по JSONdecoder и знаю решение с помощью JSONSerialization.Я хочу знать, есть ли возможность сделать это с помощью codable, и провел ли исследование для этого.
В основном, как я могу узнать, над каким контактным декодером работает в любой момент времени, так что я могу отправитьэта информация для пользовательского интерфейса с d.count, чтобы я мог отображать прогресс для пользователя?