Remplissage des cellules de table avec des données Alamofire

Pour la meilleure partie de la journée, j'ai essayé de jouer avec Alamofire et de l'utiliser pour rassembler des données basées sur l'API pour remplir une table. J'ai réussi à get datatables dans mon application iOS (je peux imprimer pour le voir), mais je ne peux pas pour la vie de moi comprendre le context pour utiliser mes données pour peupler le nombre correct de lignes de table et définir une label .

Mes données sur le web sont comme ça;

{ "members": [ "Bob Dole", "Bill Clinton", "George Bush", "Richard Nixon", ] } 

Mon TableViewController a le code comme si;

 ... var group: Ssortingng? var memberArr = [Ssortingng]() var member: [Ssortingng] = [] ... override func viewDidLoad() { super.viewDidLoad() func getData(resultHandler: (data: AnyObject?) -> ()) -> () { Alamofire.request(.GET, "http://testurl/api/", parameters: ["groupname": "\(group!)"]) .responseJSON { (_, _, JSON, _) in let json = JSONValue(JSON!) let data: AnyObject? = json let memberArr:[JSONValue] = json["members"].array! for obj in json["members"] { let member = obj.ssortingng! } resultHandler(data: data) } } ... ... override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return memberArr.count } .... 

Mon return memberArr.count ne fonctionne pas

Ce que je ne peux pas comprendre, cependant, c'est comment rendre ma variable "member" accessible à travers le controller, comme je voudrais l'utiliser pour renvoyer le nombre de lignes approprié ou utiliser la list des membres pour définir dynamicment le titre de chaque cellule.

Je sais que c'est une question novice, mais j'ai exploré StackOverflow et aucune des questions ne semble correspondre à ma situation.

Merci d'avance!

Qu'est-ce qui se passe est que getData a un bloc d'achèvement qui s'exécute en arrière-plan, vous devez dire à swift pour mettre à jour la table après avoir fini de lire datatables returnnées, mais vous devez renvoyer cette mise à jour dans le thread principal:

 func getData(resultHandler: (data: AnyObject?) -> ()) -> () { Alamofire.request(.GET, "http://testurl/api/", parameters: ["groupname": "\(group!)"]) .responseJSON { (_, _, JSON, _) in let json = JSONValue(JSON!) let data: AnyObject? = json let memberArr:[JSONValue] = json["members"].array! for obj in json["members"] { let member = obj.ssortingng! } resultHandler(data: data) dispatch_async(dispatch_get_main_queue()) { self.tableView.reloadData() } } } 

J'espère que cela vous aide!