单元格中的标签文本不完整或延迟

时间:2015-07-24 02:32:04

标签: ios swift uitableview

我有一个由URL任务设置的单元格的文本标签。但是当我第一次加载应用程序时,标签文本没有设置为任务结果,直到我滚动表格视图或我选择单元格本身。

我假设我的代码需要手动“更新”单元格的视图?这是我在tableView cellForRowAtIndexPath函数中使用的任务:

if indexPath.row == self.homeLabels.count - 1 {
        let task1 = NSURLSession.sharedSession().dataTaskWithURL(url1!) { data, response, error in
            if error != nil {
                println(error)
                return
            }

            let parser = NSXMLParser(data: data)
            parser.delegate = self
            if parser.parse() {
                println(self.results)
                if indexPath.row == 0 { 
                    cell.detailTextLabel!.text = self.parseResults
                }
            }
}

我尝试过添加tableView.reloadData(),但这似乎不是正确的功能。

2 个答案:

答案 0 :(得分:1)

实际上,这不是一个很好的方法。

首先,NSURLSession是一个异步网络,这意味着它们从主线程运行网络。

其次,你应该有一个数据模型,比如数组来保存self.parseResults中的这些字符串,并在viewDidLoad中处理这些请求。

最后,检查所有已完成的请求。如果完成,则重新加载tableview,将所有数据提供给UI。

答案 1 :(得分:0)

您应该在主队列上执行所有UI更新。

dispatch_async(dispatch_get_main_queue()) {
    // Update UI
}