使用数组在 Swift 中创建 TableView

Creating TableViews in Swift with an Array

我正在尝试使用一个 Rest 调用的结果作为我的 TableView 的输入。 我有一个名为 GamesList[String] 的数组,它是在 viewDidLoad() 函数中合成的。这是 viewDidLoad() 函数:

override func viewDidLoad() {
    super.viewDidLoad()

    getState() { (json, error) -> Void in
        if let er = error {
            println("\(er)")
        } else {
            var json = JSON(json!);
            print(json);

            let count: Int = json["games"].array!.count
            println("found \(count) challenges")

            for index in 0...count-1{
                println(index);
                self.GamesList.append(json["games"][index]["game_guid"].string!);
            }
        }
    }
}

问题是填充 TableView 的函数在填充我的 GamesList 数组之前执行。这些是填充 TableView 的函数:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return GamesList.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("Game", forIndexPath: indexPath) as! UITableViewCell
    cell.textLabel?.text = GamesList[indexPath.row]
    cell.detailTextLabel?.text = GamesList[indexPath.row]
    return cell
}

如何在数组填满后强制填满(刷新)表格?

在附加值后使用 self.tableView.reloadData()

 getState() { (json, error) -> Void in
        if let er = error {
            println("\(er)")
        } else {
            var json = JSON(json!);
            print(json);

            let count: Int = json["games"].array!.count
            println("found \(count) challenges")

            for index in 0...count-1{
                println(index);
                self.GamesList.append(json["games"][index]["game_guid"].string!);
            }
            dispatch_async(dispatch_get_main_queue()) {
                self.tableView.reloadData()
            }
        }
    }