こんにちは、ストーリーボードで 4 つのプロトタイプ セルを使用してみます。プロトタイプセルごとに、ラベルが付いたクラス uitableviewCell があります。
私のコードを見てください:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ProfilCell";
static NSString *CellIdentifier1 = @"ProfilCell1";
static NSString *CellIdentifier2 = @"ProfilCell2";
static NSString *CellIdentifier3 = @"ProfilCell3";
static NSString *CellIdentifier4 = @"ProfilCell4";
if(indexPath.section == 0)
{
ProfilCell* cell =(ProfilCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.pseudoLabel.text=[[infoArray objectAtIndex:indexPath.row]valueForKey:@"pseudo"];
return cell;
}
if(indexPath.section == 1)
{
ProfilCell2* cell = (ProfilCell2*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
cell.textLabel.text= [[infoArray objectAtIndex:indexPath.row]valueForKey:@"status"];
return cell;
}
if(indexPath.section == 2)
{
switch (indexPath.row)
{
case 0:
{
ProfilCell3* cell =(ProfilCell3*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
cell.ageLabel.text= [[infoArray objectAtIndex:indexPath.row]valueForKey:@"age"];
return cell;
}
break;
case 1:
{
ProfilCell4* cell = (ProfilCell4*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier3];
cell.deptLabel.text= [[infoArray objectAtIndex:indexPath.row]valueForKey:@"localite"];
return cell;
}
break;
case 2:
{
ProfilCell5* cell = (ProfilCell5*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier4];
cell.membreLab.text= [[infoArray objectAtIndex:indexPath.row]valueForKey:@"membre"];
return cell;
}
break;
default:
break;
}
}
return nil;
}
セクション 0 セクション 1 では、ラベルにデータがありますが、セクション 2 ケース 0 では次のようになります。
[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
配列が空に見える理由
配列にオブジェクトが 1 つしかないので、indexPath に 0 を指定するだけで問題ありません!!!