0

在我的应用程序中,我正在加载带有事件的表(来自服务器),我在其中按日期对它们进行排序,并在标题标题作为事件日期的部分中显示。现在我的要求是(因为有很多记录)加载 20 x 20 记录,并且它们必须按部分排序。

4

2 回答 2

1

我假设您正在使用 Rest Web 服务加载数据。在服务器上的某个地方,您需要有一条 SQL 语句来加载事件

SELECT * from events order by date ASC LIMIT page,20

其中 page 是您正在加载的页数。您的 iPhone 应用程序将从: 1- int page = 0;

2- 创建一个 NSMutableDictionary 来存储页面检索到的所有事件。

3- 使用 post 方法和页面参数(page = 0)向 REST 资源发送请求。

4- 我们肯定会获得 20 个(或更少)事件。

5- 对于每个新的事件数据,创建一个 NSMutableArray 并将其存储在我们的可变字典中,键为事件日期。

6- 每当向字典添加新事件时,检查字典是否有带有此事件日期的键,如果是,则使用该键将事件添加到可变数组中,否则创建新的可变数组并将事件添加到其中,然后将其添加到带有事件日期的字典。

7-显示带有标题的表格视图键,节数:

[[eventDictionary allKeys] count];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        //fetch the event for this cell;
        NSString *sectionKey = [[eventDictionary allKeys] objectAtIndex:indexPath.section];
        NSMutableArray *thisSectionEvents =  [eventDictionary objectForKey: sectionKey];
        Event *event = [thisSectionEvents objectAtIndex.row];


        //Create your customcell here and pass data to it.
}   

8-加载下一页:

8 页++

8-b 使用新页面值发送请求

8-c 将新事件添加到已包含 20 个第一个事件的 Mutable 字典中;

8-d 在表视图上重新加载数据

于 2012-10-03T09:17:51.477 回答
0

你在使用核心数据吗?如果是这样,那么您可以将所有记录保存在那里,然后使用 NSFetchRequest 以 20 个记录增量提取数据。您还需要携带一个变量来跟踪从数据库中加载了多少记录。

于 2012-10-02T19:39:11.807 回答