我正在尝试使用以下数组和对象创建表视图。
- (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];
我无法弄清楚我做错了什么,直到我对数组进行了一些更改,代码运行正常。任何建议都会有所帮助。
答案 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;
试试这个希望会有所帮助