Working code, which parse states into array, but I cannot return the array so I can use it for picker, when I return the array it is empty. How could I return it from the competitionHandler?
class func getStates() -> Array<String> {
// 1
let urlAsString = "http://api.webotvorba.sk/states"
let url = NSURL(string: urlAsString)!
let urlSession = NSURLSession.sharedSession()
var pickerStates = Array<String>()
pickerStates.append("test")
//2
let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in
if (error != nil) {
print(error!.localizedDescription)
}
// 3
let jsonResult = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
// 4
let states: NSArray = (jsonResult.objectForKey("states") as? NSArray)!
for state in states {
if let stateCode: String = (state["state_code"] as? String), let stateName: String = (state["state_name"]) as? String {
pickerStates.append(stateName)
print(stateName)
}
}
})
// 5
jsonQuery!.resume()
print(pickerStates)
return pickerStates
}