【发布时间】:2014-01-20 08:29:26
【问题描述】:
我陷入了一个非常奇怪的问题,他们正在做的是调用NSURLConnection sendAsynchronousRequest,我在其中重新加载 tableView,它没有任何问题。当 em 在收到请求响应时站在同一个 ViewController 上时,这种情况可以正常工作。当我调用 sendAsynchronousRequest 并从该 ViewController 移动然后在请求给出响应之前返回到它时,就会出现问题。这次 TableView reloadData 被调用,但在视图上没有做任何事情。我在这个dispatch_async(dispatch_get_main_queue(), ^{}); 中调用reloadData,让它在mainThread 上运行。
在这方面的任何帮助都会很棒。
编辑 1:
这是我到目前为止所获得的。当我启动 NSURLConnection asyncRequest 时,它会保留对当前时间的 tableView 和数组的引用。但是当我从该视图导航然后返回时视图被重新初始化,因此 tableView 和数组有新的引用。因此,当 asyncRequest 调用 tableView ReloadData 时,它会为旧引用的 tableView 而不是现在可见的 tableView 调用 reload,因此不会重新加载 tableView...希望现在您能提供帮助。
【问题讨论】:
-
你有没有设置断点并检查是否有对 dispatch_asyn 和 cellforrows 的 poper 调用?
-
看起来您正在重新加载一个 tableview 并显示另一个。
-
它调用
numberOfRowsInSection但不调用cellForRowAtIndexPath.. -
我的 ViewController 中只有一个 UITableView
-
当它调用
numberOfRowsInSection时号码是否正确?另外,reloadData是在异步线程还是主线程上调用的?
标签: ios objective-c uitableview