2017-03-01 27 views
-1

請你可以告訴我如何將[data]從session.uploadTask中退出或在oder中使[數據]可用於多個ViewControllers?Swift 3:如何返回session.uploadTask的值

我的課:

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

已經做了研究,當然。否則,我會尼特問...你能提供一個鏈接? – Jim

+0

[Swift:如何在異步的urlsession函數中返回一個值?]可能的副本(http://stackoverflow.com/questions/27081062/swift-how-do-i-return-a-value-within-an -asynchronous-urlsession-function) – Moritz

回答

0

完成處理負載請求完成時調用。此處理程序在委託隊列上執行。此完成處理程序採用以下參數:

數據 服務器返回的數據。 響應 提供響應元數據(例如HTTP標頭和狀態碼)的對象。如果您正在發出HTTP或HTTPS請求,則返回的對象實際上是一個HTTPURLResponse對象。 錯誤 指示請求失敗原因的錯誤對象,如果請求成功則返回nil。

+0

不能完全理解:-(你能給我一個代碼示例如何返回我的dataArray? – Jim

+0

任何進一步的幫助嗎?我被困住了:-( – Jim

+0

已經建立了一個完成處理程序.Thx – Jim