我目前正在构建一个应用程序,该应用程序将具有一个 UITableView,该 UITableView 将从网络服务获取数据。返回的数据可以包含大量记录,例如 50,000 条记录。我知道不能一次将所有记录加载到数组中,这会使应用程序因内存不足而无法响应。我正在调用的 Web 服务接收页面大小和页码的参数,因此它只会返回我想向用户显示的数据。但是我还没有找到任何方法来表明用户已经滚动了所有显示的记录并且需要从服务中获取新数据。该屏幕还有一个搜索栏和一个搜索按钮,当按下按钮时,将调用另一个返回搜索结果的服务。这将有与之前相同的问题,因为结果也可能带来很多记录。
执行此操作的最佳方法是什么?
最佳答案
好的,有几种方法可以解决这个问题。 一个非常受欢迎的是 three20 framework 的实现。 (互联网感知 TableView Controller )
关于你的第二个问题,tableview 的委托(delegate)有一个方便的方法:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
更新:
在这个答案发布后 正好 一年后,我建议您使用 RestKit .许多人认为它有一个陡峭的学习曲线,但它是一个非常好的处理 restful 资源的框架,包括缓存管理、核心数据集成/映射和分页器(以及其他),几乎可以满足您的所有需求。
关于ios - 如何从 UITableView 中的 Web 服务加载大量数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721709/