【发布时间】:2018-06-30 05:54:52
【问题描述】:
我在 viewController 中有一个 usernameTextField,我在其中输入用户名和按钮 searchTapped,代码如下:
@IBAction func searchTapped(_ sender: UIButton) {
guard let username = usernameTextField.text, username != "" else {
displayWarningLabel(withText: "Information is incorrect")
return
}
guard let gitUrl = URL(string: "https://api.github.com/users/\(username)/gists") else { return }
URLSession.shared.dataTask(with: gitUrl) { (data, response, error) in
guard let data = data else { return }
guard error == nil else { return }
do {
let gitData = try JSONDecoder().decode([Gists].self, from: data)
DispatchQueue.main.async {
self.gists = gitData
}
} catch let error {
print(error)
}
}.resume()
performSegue(withIdentifier: "GistsSegue", sender: nil)
}
从 json 获取数据后,我想将数据保存到此方法之外的数组 gists 中,但这不会发生。
var gists = [Gists]()
可能是什么问题?
以防万一,这是我解析 json 的模型:
struct Gists: Codable {
var description: String?
var files: [String: DetailGist]
}
struct DetailGist: Codable {
var filename: String?
var raw_url: String?
}
【问题讨论】:
-
显示 JSON 响应
-
你有什么想法?什么
gitData不是数组?