0

我正在尝试使用以下数组和对象制作表格视图。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
    characterArray = [[NSMutableArray alloc] init];

    character * Choice = [[character alloc] init];

    Choice.name = @"creat new character";
    [characterArray addObject:Choice];

    character * secondChoice = [[character alloc]init];
    secondChoice.name = @"paliden";
    [characterArray addObject:secondChoice];
}

但我不断得到NSInvalidArgumentException,原因:-[character isEqualToString:]

我发现问题出在cellForRowAtIndexPath

cell.textLabel.text = [characterArray objectAtIndex:indexPath.row];

我无法弄清楚我做错了什么,直到我对数组进行了一些更改,代码才能正常工作。任何的意见都将会有帮助。

4

2 回答 2

2

您应该提供一个字符串作为 cell.textLabel.text 的文本。在您的代码中,您只需将对象提供给不正确的 cell.textLabel.text。将 [characterArray objectAtIndex:indexPath.row] 转换为 (character *) 然后调用 .name,这将返回一个字符串。将该字符串作为 cell.textLabel.text 的输入

试试这个,

cell.textLabel.text = ((character *)[characterArray objectAtIndex:indexPath.row]).name;
于 2013-04-29T02:30:36.793 回答
0

在 cellForRowAtIndexPath 中从字符创建中获取名称

Character *choice=(Character *)[characterArray objectAtIndex:indexPath.row]; 然后

cell.textLabel.text =choice.name;

试试这个希望会有所帮助

于 2013-04-29T06:06:48.900 回答