UITableView奇怪的reloadData问题

时间:2014-01-20 08:29:27

标签: ios objective-c uitableview

我陷入了一个非常奇怪的问题,他们正在调用NSURLConnection sendAsynchronousRequest,我重新加载了tableView,它没有任何问题。当收到请求响应时,当站在同一个ViewController上时,这种情况正常工作。当我调用sendAsynchronousRequest并从ViewController移动然后在请求给出响应之前返回它时,会出现问题。这次调用TableView reloadData但在View上没有做任何事情。我在此dispatch_async(dispatch_get_main_queue(), ^{});中调用reloadData,以便在mainThread上运行。

在这方面的任何帮助都会很棒。

修改1:

这是我到目前为止所得到的...当我启动NSURLConnection asyncRequest时,它保持对当前时间的tableView和数组的引用..但是当我从该视图导航然后返回时视图重新初始化,因此tableView和数组具有新的引用。因此,当asyncRequest调用tableView ReloadData时,它会调用旧引用的tableView的reload,而不是现在可见的那个,因此不会重新加载tableView ...希望现在你可以提供帮助。

1 个答案:

答案 0 :(得分:2)

不是在主线程上重新加载tableview,而是在获取数据并解析数据后尝试重新加载它。在视图之间切换可能会导致您的tableview在数据来自服务器结果空白tableview之前重新加载,这是由于在主线程上调用某些方法引起的。

编辑:尝试在从服务器获得响应之后以及在加载数据之前,仅在viewdidload和数组中初始化tableview。