我有下一个使用completionhandler发出http请求并接收json响应的函数:
static_cast
我需要调用此函数,并找到“id_token”字段以将其保存在变量中。我是初学者,我正在尝试这个代码,但我有错误“类型'()'没有下标成员”
func makeRequest3(request: URLRequest, completion: @escaping (JSON!)->Void){
let task = URLSession.shared.dataTask(with: request){ data, response, error in
//Code
print(data as NSData)
let json = JSON(data: data)
completion(json)
}
task.resume()
}
我怎么做?我正在使用swift3。
答案 0 :(得分:1)
您的makeRequest3
本身不会返回值,但响应会传递给完成处理程序,在完成处理程序中执行响应所需的所有内容:
makeRequest3(request: request) {response in //<-`response` is inferred as `JSON`, with your `makeRequest3`.
var idtoken = response["id_token"]
//Use `idtoken` inside this closure
//...
}