0

UITableView呼び出しで取得したデータを に入力しようとしていDataTaskWithURLます。ただし、完了ハンドラが開始される前にテーブルビューがロードされました。

この問題を検索したところ、メインスレッドに移動する方法が見つかりましたが、うまくいかないようでした。テーブルビューがロードされる前に、それを正しいキューに移動する方法について何か考えはありますか?

私のコード:

    var jsonData: JSON = []

func getRequestForTableView() {

    let urlPath = "[URL]"
    let url: NSURL = NSURL(string: urlPath)!
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in

        let json = JSON(data: data)

        println(json.count)
        self.jsonData = json
    })
    task.resume()
}
4

1 に答える 1

1

最初に応答コードとあなたのデータを確認する必要があります。200 のような応答コード。探しているものがあれば、応答を確認した後、ブロックに TableView をリロードする必要があります。

TableView でデータを正しく解釈していることを確認してください。

TableView をリロード // Swift

dispatch_async(dispatch_get_main_queue(), { () -> Void in
    self.tableView.reloadData()
})

応答コード // iOS

if ([response statusCode] == 200) {
           //reload table here             
}
于 2015-04-20T13:41:38.247 に答える