UITableView动态数据源

时间:2013-06-25 20:20:59

标签: iphone ios objective-c

我有一个稍微复杂的表问题,我设置了表,并给它分段数和每个部分的行数。我实际上没有任何关于单元格的数据,此时它们只是空的。

我想要做的是当用户滚动单元格,进行API调用并获取该单元格的数据时,让我们说下50个单元格。

API调用是异步的,一旦我进行调用,我不想在用户滚动时为下一个单元格进行调用,因为我知道数据很快就会回来。

有任何想法或建议吗?

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableView *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // Pull data for next 50 table view cells
    // The data will come from a server

    return cell;
}

1 个答案:

答案 0 :(得分:4)

这听起来像是一个很好的机会来介绍一个单独的服务来管理您的网络请求,而不是将该行为嵌入到表的数据源中间。如果您的数据源要求此服务尝试加载接下来的50个单元,那么该服务可以决定是否应该实际启动新的网络请求。让您的服务实例跟踪哪些请求正在传输以及它们应涵盖哪些索引路径范围,以便它可以决定-shouldLoadItemsStartingAtIndexPath:样式消息何时应该产生新的网络请求。

这是您正在寻找的那种模式,或者您对您的方法有更具体的问题?