两个UITableView一个加载精细其他不

时间:2014-03-18 18:16:02

标签: objective-c

我的视图控制器上有两个uitableview元素...人员加载的tableview精确显示表中的人名,当我选择一个人时,我在我的NSLog中获取personID,personName填充UILabel就好了但是团队的tableview加载 NSCFString,当我选择它时,应用程序崩溃,这是在日志中:"由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [ _NSCFString teamID]:无法识别的选择器发送到实例......"

的.m

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

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{


    if (tableView == _personList){
        return [personData count];
    }else{
        return [teamData count];
    }


}


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

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (tableView == _personList){

    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    Persons *person = [personData objectAtIndex:indexPath.row];
    cell.textLabel.text = person.personName;

    return cell;
    }else {

        if(!cell){
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        }

        Teams *team = [teamData objectAtIndex:indexPath.row];

        cell.textLabel.text = team.teamName;
        return cell;

    }
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

 if (tableView == _personList){

    Persons *person = [personData objectAtIndex:indexPath.row];
   NSString *selPersonID = person.personID;
     _thePersonName.text = person.personName;
     NSLog(@"PersonID: %@", selPersonID);

 }else if(tableView == _teamList){

     Teams *team = [teamData objectAtIndex:indexPath.row];
     NSString *selTeamID = team.teamID;
     _theTeamName.text = team.teamName;
     NSLog(@"TeamID: %@", selTeamID);

 }

}

1 个答案:

答案 0 :(得分:0)

错误消息表示尝试获取其teamID的对象没有teamID属性(因为您的数组以某种方式返回NSString,而不是Team对象)。

因此,您必须查看您的teamData数组是否已正确填充Team对象。