tableview NSInvalidArgumentException,我不知道为什么
问题描述:
我想使用下面的数组和对象进行表视图。tableview NSInvalidArgumentException,我不知道为什么
- (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];
我想不出什么我做错了,直到我对数组进行了一些更改,代码工作正常。任何的意见都将会有帮助。
答
您应该提供一个字符串作为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;
答
在的cellForRowAtIndexPath从角色获得名义创建
Character *choice=(Character *)[characterArray objectAtIndex:indexPath.row];
然后
cell.textLabel.text =choice.name;
试试这个希望会有帮助
in cellForRowAtIndexPath再次你必须得到这个名字,所以创建Character * choice =(Character *)[characterArray objectAtIndex:indexPath.row];然后cell.textLabel.text = choice.name;尝试这个 – krishh 2013-04-29 04:42:47