Я пытаюсь разобрать JSON с помощью URLSession и без использования Alamofire или чего-либо еще.
Я просто хочу взять JSON и поместить его в UITableView.
Я пытаюсь собрать воедино то, что я узнал, изучая, как анализировать JSON с помощью Alamofire, с тем, что я могу найти в Google. Многие ответы на YouTube или Stack и т. Д. Используют NS для всего. NSURL, NSDictionary и т. Д. И т. Д. Или просто набирают код, не объясняя, что и почему.
Я ДУМАЮ, что почти достиг цели, но мне нужна помощь, чтобы понять, что мне осталось сделать.
SO.
Разрешил произвольные загрузки в plst
В файле Swift у меня есть следующее
class Potter {
private var _title: String!
private var _author: String!
private var _imageURL: String!
let POTTER_URL = "http://de-coding-test.s3.amazonaws.com/books.json"
var title: String {
if _title == nil {
_title = ""
}
return _title
}
var author: String {
if _author == nil {
_author = ""
}
return _author
}
var imageURL: String {
if _imageURL == nil {
_imageURL = ""
}
return _imageURL
}
func downloadJSON() {
let url = URL(string: POTTER_URL)
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error != nil {
print("Error")
} else {
if let content = data {
do {
if let jDict = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as? Dictionary<String, AnyObject> {
if let title = jDict["title"] as? String {
self._title = title.capitalized
}
if let author = jDict["author"] as? String {
self._author = author.capitalized
}
if let imgURL = jDict["imageURL"] as? String {
self._imageURL = imgURL
}
}
}
catch {
}
}
}
}
task.resume()
}
}
В моем Main.Storyboard я добавил табличное представление и настроил весь пользовательский интерфейс, а в своем ViewController я настроил делегатов табличного представления.
Я создал свойство
var potters = [Potter]()
Теперь я застрял в том, как заполнить этот массив и как настроить правильную поточность.