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