Ich habe diese Funktion, und ich möchte das Standort-Array mit Breiten-/Längengraddaten füllen, die ich in der DataTask-Funktion bekomme.Probleme beim Abrufen meiner Daten datatask swift 3
Das Problem ist, dass die Daten nur in der Datatask-Funktion verfügbar sind und außerhalb davon ist es weg.
func getFromDatabase()
{
var locations: [CLLocationCoordinate2D] = []
let url = URL(string: URL_DATABASESend)
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
//Here I print the JSON: print(NSString(data: data!, encoding: String.Encoding.utf8.rawValue)!)
do{
if(data != nil){
let parsedData = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [[String:String]]
for dic in parsedData! {
if let lat = Double(dic["latitude"]!), let long = Double(dic["longitude"]!) {
//print(lat)
//print(long)
var coordinatesToAppend = CLLocationCoordinate2D(latitude: lat, longitude: long)
locations.append(coordinatesToAppend)
}
}
}} catch let error as NSError{
print(error.localizedDescription)
return
}
}
task.resume()
}
Ich weiß nicht, wie einen completionhandler verwenden und wenn ich mir eine Menge Fehler bekommen tun (ich eine Menge Tutorials/Online-Hilfethemen gefolgt).
Kann jemand die Information aus der Funktion herausbekommen? (Kann den Wert nicht zurückgeben, weil ich datatask benutze) Ich lese viele Themen, aber nichts davon hat mein Problem gelöst.
Ich hoffe, etwas von euch zu hören!
Mögliche Duplikat http://stackoverflow.com/questions/31264172/how-can-i-get-the-data-from-nsurlsession -sharedsession-datataskwithrequest – Moritz
@EricAya Ich habe dieses Thema gelesen, aber es hat mir nicht geholfen ... Bitte hilf mir, dass ich wirklich will, dass es funktioniert, aber ich habe keine Programmiererfahrung, ich habe dir auch einen Twitter-Tweet geschickt. – royvano
Kann ich mit dir reden @EricAya lassen Sie mich wissen, wie – royvano