Создал функцию для обращения к php методом POST для получения данных, на выходе должен получать массив данных типа [[String:Any]].
Однако return отправляется пустой т.к. требуется время на подключение к интернету и скачиванию массива. Как быть?
var dataTake = [[String: Any]]()
public class initInternet {
func dataArrayTake(urlPHPServer:String, sentKey: String, nameKey:String, id:Int, nameId:String ) -> [[String:Any]]
{
print("func: resultTake")
let url = URL(string:urlPHPServer)!
var request = URLRequest(url:url)
request.httpMethod = "POST";
let dataForm = "\(nameKey)=\(sentKey)&\(nameId)=\(id)"
request.httpBody = dataForm.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request)
{ data, response, error in
guard let data = data, error == nil else
{
print("ошибка данных:\(error)")
return
}
do
{
if let json = try? JSONSerialization.jsonObject(with: data) as! [String: Any]
{
let dataArray = json["result"] as! [[String: Any]]
dataTake = dataArray
}
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200
{
print("Код ошибки: \(httpStatus.statusCode)")
print("Ошибка = \(response)")
}
}
task.resume()
return dataTake
}
}