我正在尝试使用 URLSession 解析 JSON,而不使用 Alamofire 或其他任何东西。
我只想获取 JSON 并将其放入 UITableView。
我正在尝试将我从学习如何使用 Alamofire 解析 JSON 中学到的东西与我在谷歌上可以找到的东西拼凑起来。youtube 或 Stack 等上的许多答案都使用 NS。NSURL、NSDictionary 等等等。或者只是输入代码而不解释什么/为什么。
我想我快到了,但我需要帮助来了解我还剩下什么要做。
所以。
我允许在 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 中,我添加了 tableview 并设置了所有 UI,在我的 ViewController 中,我设置了 tableview 代表。
我创建了一个属性
var potters = [Potter]()
我现在被困在如何填充这个数组,以及如何设置正确的线程