0

ストーリーボードで設計されたテーブル ビューを備えたビュー コントローラーがあります。このテーブル ビューは、それぞれが 3 つの異なるセクションに対応する 3 つの異なるカスタム セルを使用します。各カスタム セルをプロトタイプ セルとして定義し、それぞれに異なる識別子を使用し、Xcode のすべてのセルでカスタム セル オブジェクトを定義し、Interface Builder によってすべてのセルのすべてのコントロールにリンクしました。

カスタム セルをセクションの順序として配置しました。ここで確認できます。マークされたすべての四角は、カスタム プロトタイプ セルです。

ここに画像の説明を入力

テーブルビューのコードは次のとおりです。

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

    return 3;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (indexPath.section==2){
            return 40;
        }else if (indexPath.section==1){
            return 40;
        } else if (indexPath.section==0){
            return 205;

        }

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section==0){
        return 1;
    } else if (section==1){
        return [[selectedTeam valueForKey:@"jugadores"]count];
    } else if (section==2){
        return [[selectedTeam valueForKey:@"tecnicos"]count];
    }

}

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

    if (indexPath.section==0){

        NSString *imageService = @"http://backend.exular.net/contenido/";


        imageCell *cellImage = [table dequeueReusableCellWithIdentifier:@"imatge"];

        if (cellImage == nil) {
            cellImage = [[imageCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"imatge"];
        }

        cellImage.leagueName.text = [selectedTeam valueForKey:@"nom"];

        NSString *path= [[NSString stringWithFormat:@"%@%@" ,imageService,  [selectedTeam valueForKey:@"img"]] stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

        [cellImage.teamPicture  setImageWithURL:[NSURL URLWithString:path] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

        imageService=nil;

        return cellImage;

    } else if (indexPath.section==1){


         teamCell *cellTeam = [table dequeueReusableCellWithIdentifier:@"equipo"];

         if (cellTeam == nil) {
             cellTeam = [[teamCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"equipo"];
         }

         NSDictionary *teamDic =  [[selectedTeam valueForKey:@"jugadores"] objectAtIndex:indexPath.row];

         cellTeam.name.text = [teamDic valueForKey:@"nom"];

         cellTeam.height.text = [teamDic valueForKey:@"height"];

         cellTeam.number.text = [teamDic valueForKey:@"altura"];

         cellTeam.date.text = [teamDic valueForKey:@"date"];

         cellTeam.position.text = [teamDic valueForKey:@"posicion"];

         return cellTeam;

    } else if (indexPath.section==2){

        NSString *CellIdentifier = @"staff";

        staffCell *cellStaff = [table dequeueReusableCellWithIdentifier:@"staff"];

        if (cellStaff == nil) {
            cellStaff = [[staffCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"staff"];
        }

        NSDictionary *staffDic = [[selectedTeam valueForKey:@"tecnicos"] objectAtIndex:indexPath.row];

        cellStaff.name.text = [staffDic valueForKey:@"nom"];

        cellStaff.role.text = [staffDic valueForKey:@"posicion"];

        return cellStaff;

    }

    return nil;
}

Xcodeは私にこのエラーを与えました:Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<teamCell 0x8d4f6b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key role.'そして実行は行で中断します

teamCell *cellTeam = [table dequeueReusableCellWithIdentifier:@"equipo"]; 

私はあなたの助けに感謝します。

どうもありがとう。

4

0 に答える 0