0
JSONデータを取得して補完ブロックに表示するこの関数は、(Data)
ではなく((Data) -> Void)
の代わりにvoid
が本当に必要ですか?ここでは関数は次のとおりです。JSONデータを取得する際に、完了ブロックを持つポイントは何ですか?
typealias JSONData = ((Data) -> Void)
func getJSONData(type: String, urlExtension: String, completion: @escaping JSONData) {
let request = URLRequest(url: URL(string:"\(baseURL)\(type)/\(urlExtension)?api_key=\(apiKey)®ion=US&append_to_response=videos,images,releases")!)
let dataTask = session.dataTask(with: request, completionHandler: { (data, response, error) in
if error == nil {
if let httpResponse = response as? HTTPURLResponse {
switch (httpResponse.statusCode) {
case 200:
if let data = data {
completion(data)
}
default:
print(httpResponse.statusCode)
}
}
} else {
DispatchQueue.main.async {
if let error = error {
print("Error: \(error.localizedDescription)") }
return
}
}
})
dataTask.resume()
}
- > allを一緒に省略することは可能ですか、それとも必須ですか? – SwiftyJD
これは必須です。詳細についてはhttps://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.htmlをご覧ください。 – hhanesand
ああ、ありがとう! – SwiftyJD