I need to return a value from a function that has a closure in it.
I researched about returning value from closures, and found out that I should use 'completion handler' to get the result I want.
I saw posts here and articles explaining it but could not apply because I didn't find anything that matches with my problem.
class ViewController: UIViewController {
    let urls = URLs()
    override func viewDidLoad() {
        super.viewDidLoad()
        var leagueId = getLeagueId(country: "brazil", season: "2019")
        print(leagueId) //PRINTING 0
    }
    func getLeagueId (country: String, season: String) -> Int {
        let headers = Headers().getHeaders()
        var leagueId = 0
        let url = urls.getLeagueUrlByCountryAndSeason(country: country, season: season)
        Alamofire.request(url, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers).responseJSON {
            response in
            if response.result.isSuccess {
                let leagueJSON: JSON = JSON(response.result.value!)
                leagueId = (leagueJSON["api"]["leagues"][0]["league_id"].intValue)
            }
            else {
                print("error")
            }
        }
           return leagueId
    }
}
The value returned is always 0 because the closure value is not passing to the function itself.
Thanks a lot
 
     
     
     
    