MP
или иди еще дальше и ковыряй кастомные лайауты для коллекций
Size: a a a
MP
PP
v
return CGSize(width: 150, height: 100)
US
A
US
1
🅰Б
func fetchData<T: Decodable>(url: String, complition: @escaping (_ profilesList:[T])->()) {
guard let url = URL(string: url) else {return}
URLSession.shared.dataTask(with: url) { (data, _, _) in
guard let data = data else {return}
do {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let profilesList = try decoder.decode([T].self, from: data)
complition(profilesList)
} catch let error {
print(error)
}
} .resume()
}
1
func fetchData<T: Decodable>(url: String, complition: @escaping (_ profilesList:[T])->()) {
guard let url = URL(string: url) else {return}
URLSession.shared.dataTask(with: url) { (data, _, _) in
guard let data = data else {return}
do {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let profilesList = try decoder.decode([T].self, from: data)
complition(profilesList)
} catch let error {
print(error)
}
} .resume()
}
AB
AB
PM
PM
AB
AB
PM
AB
PM