0

ビジネスタイプ(美容院、整備士など)を含む配列と、ビジネスセクションを文字(AまたはBまたはCまたはD ...またはZなど)として含む配列を持つビジネスディレクトリを開発しています。

データは、AZインデックス付きのテーブルビューに表示されます。

私は次のように設定しましたが、ビジネスセクションレターに基づいてセクション番号を返す方法を考えることができません。

各セクションで同じビジネスタイプの文字(たとえば、AまたはBまたはCまたはD ...またはZなど)を持つ配列内のオブジェクトの数を返したい。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 26;
}

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {

    NSMutableArray *tempArray = [[NSMutableArray alloc] init];
    [tempArray addObject:@"A"];
    [tempArray addObject:@"B"];
    [tempArray addObject:@"C"];
    [tempArray addObject:@"D"];
    [tempArray addObject:@"E"];
    [tempArray addObject:@"F"];
    [tempArray addObject:@"G"];
    [tempArray addObject:@"H"];
    [tempArray addObject:@"I"];
    [tempArray addObject:@"J"];
    [tempArray addObject:@"K"];
    [tempArray addObject:@"L"];
    [tempArray addObject:@"M"];
    [tempArray addObject:@"N"];
    [tempArray addObject:@"O"];
    [tempArray addObject:@"P"];
    [tempArray addObject:@"Q"];
    [tempArray addObject:@"R"];
    [tempArray addObject:@"S"];
    [tempArray addObject:@"T"];
    [tempArray addObject:@"U"];
    [tempArray addObject:@"V"];
    [tempArray addObject:@"W"];
    [tempArray addObject:@"X"];
    [tempArray addObject:@"Y"];
    [tempArray addObject:@"Z"];

    return tempArray;

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// I want to return the number of objects in the array that have the same section name (EG. A or B or C etc)
}
4

2 に答える 2

1

ディクショナリまたは配列の配列を作成できます。どちらかがあなたのために働くでしょう。

この例を見てください:

alphabetsA、B、C...Z を含む2 つの配列があります。そして、他の配列wordsには、index[0]={apple, axe..}, index[1]={ball, bat}, index[3]={cow, cat, car, cardamom}.... が含まれています。二次元配列を形成します。

注: 不要なものはほとんどありません。サブタイトルのように省略できます。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return [self.words count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [[self.words objectAtIndex:section]count];
}

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

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"cell"];
    if (cell==nil) {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
    }
    cell.textLabel.text=[[self.words objectAtIndex:indexPath.section]objectAtIndex:indexPath.row];
    cell.detailTextLabel.text=[NSString stringWithFormat:@"This is detailed subtitle for %@.",cell.textLabel.text];
    return cell;

}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return [self.alphabets objectAtIndex:section];
}

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;{
    return self.alphabets;
}
于 2013-01-07T10:16:38.357 に答える
0

NSCountedSet各オブジェクトが何回発生するかを知っている元の配列からを作成できます

NSCountedSet *countedSet = [[NSCountedSet alloc] initWithArray:yourArray];

countForObject:次に、セットを使用して各オブジェクトのカウントを取得できます。

順序が重要な場合は、配列を列挙し、配列countForObject:のオブジェクトを使用してセットを呼び出すことができます。

于 2013-01-07T10:25:16.020 に答える