2017-03-01 5 views
-1

Bitte können Sie mir sagen, wie [Daten], um wieder aus einem session.uploadTask in oder um für mehrere Viewcontrollers [data] zur Verfügung zu stellen?Swift 3: Wie Werte zurückgeben aus session.uploadTask

Meine Klassen:

class data { 
    var name1: String = "" 
    var name2: String = "" 
    ... 
} 

class fetchData { 
    var url: String = "" 
    var body: String = "" 
    ... 

func getDataFromServer (apiParrameters,...) -> [data] { 
    var dataArray = [data]()  
    session.uploadTask() { 
    // fetching the [data 
    ... 
    // adding [data] 
    ... dataArray.append(data(name1: name1String, name2: name2String)) ... 

    //Where to retun(dataArray)? In session.uploadTask it is not possible/accespted 
    /* in OperationQueue.main.addOperation({ 
     //return(dataArray) is not possible 
     })*/ 
} 
resume(uploadTask) 
//return(dataArray) at this point results in an empty dataArray 


} 
} 
+0

Nachforschungen gemacht, sicher. Sonst würde ich nicht fragen ... Können Sie einen Link angeben? – Jim

+0

Mögliches Duplikat von [Swift: Wie gebe ich einen Wert innerhalb einer asynchronen URL-Funktion zurück?] (Http://stackoverflow.com/questions/27081062/swift-how-do-i-return-a-value-within-an Asynchroner-urlsession-Funktion) – Moritz

Antwort

0

Der Abschluss-Handler aufzurufen, wenn die Lastanforderung abgeschlossen ist. Dieser Handler wird in der Delegatenwarteschlange ausgeführt. Dieser Beendigungshandler verwendet die folgenden Parameter:

Daten Die vom Server zurückgegebenen Daten. Antwort Ein Objekt, das Antwort Metadaten wie HTTP-Header und Statuscode zur Verfügung stellt. Wenn Sie eine HTTP- oder HTTPS-Anforderung ausführen, ist das zurückgegebene Objekt tatsächlich ein HTTPURLResponse-Objekt. Fehler ein Fehler-Objekt, das die Anforderung fehlgeschlagen ist, oder null, wenn die Anforderung erfolgreich war zeigt, warum.

+0

nicht vollständig :-(verstand können Sie mir einen Code Beispiel geben, wie mein dataarray zurückzukehren? – Jim

+0

weitere Hilfe? ich bin stucked :-( – Jim

+0

einen Abschluss Handler gebaut haben. Thx – Jim