Ios 将数据从api加载到tableview

Ios 将数据从api加载到tableview,ios,uitableview,Ios,Uitableview,我需要将一大组消息从后端api加载到IOS聊天应用程序的tableview。每次重新加载数据时,都会填充整个列表。如何在不加载整个列表的情况下更有效地执行此操作?我想加载最后20条消息,当用户向上滚动时,我想从后端获取下20条(最后40条消息)。任何帮助都将不胜感激。谢谢我不知道该怎么办。但我可以想象,您将从 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)i

我需要将一大组消息从后端api加载到IOS聊天应用程序的tableview。每次重新加载数据时,都会填充整个列表。如何在不加载整个列表的情况下更有效地执行此操作?我想加载最后20条消息,当用户向上滚动时,我想从后端获取下20条(最后40条消息)。任何帮助都将不胜感激。谢谢

我不知道该怎么办。但我可以想象,您将从

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

这样,它将在每次单元格出现在屏幕上时调用api。这种方法的问题在于每次单元格进出屏幕时都会调用api。

您可以进行分页。如果您知道一次有多少行,您可以计算出偏移量,并在行通过n*限制-1后调用API。示例:限制为10,用户每次看到第9、19、29行时都会获取。它提供一个1行缓冲区来加载接下来的10行


你甚至可以通过滚动的速度来调整你在预取方面的积极程度。

@Khalid,我在viewdidload调用api,将消息放入NSMutableArray,当新消息出现时,我重新加载表。一个(相当简单)方法是像iOS消息应用程序那样——在顶部有一个静态单元格,上面写着“加载更多消息”。当用户点击此单元格时,在后台发出fetch。检索数据时,将新消息插入表数据存储阵列并刷新表。谢谢Paul。我将尝试一下。