Я бы вырезал весь этот AnyObject
код:
if let array = response.result.value as? [[String: Any]] {
for dictionary in array {
self.OPlays.append(Playlist(
id: dictionary["id"] as? Int,
title: dictionary["title"] as? String,
artist: dictionary["artist"] as? String,
categorie: dictionary["categorie"] as? String,
cover_url: dictionary["cover_url"] as? String
))
}
self.tableViewPlaylist.reloadData
}
Лично я бы сделал go шаг вперед и ушел бы из бизнеса декодирования вашего JSON вручную. Используйте JSONDecoder
.
struct Playlist: Codable {
let id: Int?
let title: String?
let artist: String?
let categorie: String?
let cover_url: String?
}
Затем, если у вас есть data
, который является развернутым Data
объектом:
do {
self.OPlays = JSONDecoder().decode([Playlist].self, from: data)
} catch {
print(error)
}
Или, если вы используете Alamofire, подумайте Alamofire 5, использующий JSONDecoder
метод response
.