私のアプリでは、(サーバーから) イベントを含むテーブルを読み込んでいます。そこでは、日付ごとに並べ替え、ヘッダー タイトルをイベントの日付としてセクションに表示しています。現在、私の要件は (レコードが多いため) 20 x 20 のレコードをロードすることであり、それらはセクションで並べ替えられている必要があります。
2 に答える
Rest Web サービスでデータをロードしていると仮定します。サーバーのどこかに、イベントをロードするための SQL ステートメントが必要です
SELECT * from events order by date ASC LIMIT page,20
page は、読み込んでいるページの数です。iPhone アプリは次のように始まります: 1- int page = 0;
2- ページによって取得されたすべてのイベントを格納する NSMutableDictionary を作成します。
3- post メソッドと page パラメータ (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 リロード データ
コアデータを使用していますか? その場合は、そこにすべてのレコードを保存してから、NSFetchRequest を使用して 20 レコードずつデータを取得できます。また、データベースからロードされたレコードの数を追跡するために、変数を保持する必要があります。