0

これに似た質問がいくつかありますが、それらに対処する方法がわかりません。

これに似たxmlを解析しています。

タイトル-a コンテンツ-b カテゴリ-cat1

タイトル-c コンテンツ-d カテゴリ-cat2

等々..

次に、キャッチしたすべての値を nsmutable 配列に保存します。したがって、タイトル、コンテンツ、およびカテゴリの nsmutable 配列があります。たとえば、インデックス 10 のオブジェクト、配列内のそのオブジェクトのすべての値 ( [title indexOfObject:10], [コンテンツ indexOfObject:10],[カテゴリ indexOfObject:10] )

解析後、このループでいくつのカテゴリがあるかを取得します。

mySections=[[NSMutableArray alloc] init];
    for (int i=0; i<[category count]; i++) {
        if (![mySections containsObject:[category objectAtIndex:i]]) {
            [mySections addObject:[category objectAtIndex:i]];
        }
    }
//--------------------


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return [mySections count];

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSInteger count=0;
    for (int i=0; i<[baslik count]; i++) {
        if ([[category objectAtIndex:i]isEqualToString:[category objectAtIndex:section]]) {
            count++;
        }
    }
    return count;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{

        return [mySections objectAtIndex:section];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

//But in this function I cannot figure out how to access the right element 

[title objectAtIndex:indexPath.row]

}

間違っているかもしれませんが、セクションのコーディングはこれが初めてです。誰かが正しい方法で書く方法を教えてもらえますか?

4

1 に答える 1

0

良いアプローチは、次のような形式ですべてのデータを NSDictionary に入力することです

セクション1
  アイテム
第2節
  アイテム

次に、次のことができます。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return [yourDictionary count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSString *aSection = yourDictionary.allKeys[section];
    id theData = yourDictionary[aSection];
    return [theData count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{

    return yourDictionary.allKeys[section];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *aSection = yourDictionary.allKeys[indexPath.section];
    id theData = yourDictionary[aSection][indexPath.row];
    ....
}
于 2013-11-13T13:46:22.057 に答える