J'ai besoin de cette fonction (qui récupère des données d'une base de données) pour renvoyer une chaîne, mais je n'arrive pas à comprendre comment. J'ai trouvé quelques questions/solutions similaires mais je suis encore du mal à mettre en œuvre une bonne solution (je suis assez nouveau avec rapide)Renvoyer la chaîne à partir de la fonction de terminaison d'URLSession Fonction Swift 3
class Helper{
static func pReq(jsonURL : String, col : String) -> String {
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let url = URL(string: jsonURL)!
let request = URLRequest(url: url)
var string = ""
let downloadTask = session.dataTask(with: request, completionHandler: {(data, response, error) in
if(error == nil){
print("data = \(String(describing: data))")
do{
print(jsonURL)
let dataDownloadedAsJson = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:AnyObject]
print("dataDownloadedAsJson = \(dataDownloadedAsJson)")
do{
if(dataDownloadedAsJson[col] as? String != nil){
string = (dataDownloadedAsJson[col] as? String)!
}
}
}
catch{
}
}
else{
print("Error downloading data. Error = \(String(describing: error))")
}
})
downloadTask.resume()
return string
}
}
Merci à!
assez proche dupé [de cette question connexe] (https://stackoverflow.com/questions/24647406/how-to-use-completionhandler-closure-with-return-in-swift). –