如何在加载视图后在运行时更新UITableView

Nic*_*las 7 iphone objective-c uitableview uikit ios

我已经阅读了几篇关于UITableView的文章,包括官方文档和一些关于SO的文章.但我的情况似乎有所不同.
我希望每次加载视图时更新表.我必须使用HTTP请求获取数据.
我现在得到的是:

  1. 当进入表视图时,我应该使用非同步HTTP请求来更新数据.因为我不希望主线程等待.一个地方就是这个tableView:cellForRowAtIndexPath:方法.所以我返回0表示开头没有数据.
  2. 当我得到HTTP响应时,我使用主线程更新行 beginUpdates endUpdates insertRowsAtIndexPaths:withRowAnimation:
  3. 我必须同时更新"数据源",但如何做到这一点?
    或者我应该每隔一段时间创建一个守护程序线程并更新我的数据?这样在加载TableView时数据就会准备就绪.

Dar*_*ust 13

你会这样做:

  • 有一个布尔值或一些变量,你可以可靠地检测你是否拥有所有数据.
  • viewWillAppear,重置一切.开始加载您的数据.
  • 如果您还没有数据,则只显示一个带有一个单元格的部分(占位符单元格显示为"正在加载..."并显示一个微调器).
  • 数据完全加载后,您可以设置bool或其他任何内容.
  • 呼叫 [self.tableView reloadData];

在您的所有UITableViewDataSource方法中,您需要检查是否已经获得了数据.如果没有,则返回占位符数据.