tableview NSInvalidArgumentException,我不知道为什么

时间:2013-04-29 02:24:21

标签: objective-c

我正在尝试使用以下数组和对象创建表视图。

- (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];

我无法弄清楚我做错了什么,直到我对数组进行了一些更改,代码运行正常。任何建议都会有所帮助。

2 个答案:

答案 0 :(得分:2)

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

的输入

试试这个,

cell.textLabel.text = ((character *)[characterArray objectAtIndex:indexPath.row]).name;

答案 1 :(得分:0)

在cellForRowAtIndexPath中从字符创建

获取名称

Character *choice=(Character *)[characterArray objectAtIndex:indexPath.row];  那么

cell.textLabel.text =choice.name;

试试这个希望会有所帮助