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 パラメータ (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 に答える