Вызовите следующую функцию после завершения предыдущего - PullRequest
0 голосов
/ 04 марта 2019

Мне нужно вызвать func fillFields , после того как func getJsonData закончится.

func getJsonData - это асинхронная задача для получения данных на сервере для URLRequest.

func getAPIData() {
    let initial = URL(string: "http://10.0.0.2/Blower/app/api/inicial.php")

    DispatchQueue.main.async {
        _ = URLSession.shared.dataTask(with: initial!) { (dados, requisicao, erro) in
            if requisicao != nil {}

            if let dados = dados {
                do {
                    let json = try JSONSerialization.jsonObject(with: dados, options: []) as! [String: Any]
                    /*
                    *
                    */                   
                } catch {
                    print(erro as Any)
                }
            }
        }.resume()
    }
}

Как узнать, завершена ли функция getAPIData?

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете определить с помощью обработчика Завершение, когда задача завершена, как это.

func getAPIData(complition:@escaping (AnyObject?, Error?) -> Void) {

        let initial = URL(string: "http://10.0.0.2/Blower/app/api/inicial.php")

        DispatchQueue.main.async {
            _ = URLSession.shared.dataTask(with: initial!) { (dados, requisicao, erro) in
                if requisicao != nil {}

                if let dados = dados {
                    do {
                        let json = try JSONSerialization.jsonObject(with: dados, options: []) as! [String: Any]

                        complition(json as AnyObject, nil) // When Complete task

                        // Call next function Here

                    } catch {
                        print(erro as Any)
                        complition(nil, erro)
                    }
                } else {
                    complition(nil, erro)
                }
                }.resume()
        }
}

Вызов как этот

self.getAPIData { (response,error) in
    print(response) // Your response is here after complete task
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...