我在表格视图单元格中使用自定义标签。当我尝试使用数组中的数据填充它时,会显示数据但是当我滚动表格视图时应用程序崩溃。
我在viewDidLoad中设置的数组
tempArray=[NSArray arrayWithObjects:@"Alert 1",@"Alert 2",@"Alert 3",@"Alert 4",@"Alert 5",@"Alert 6",@"Alert 7",@"Alert 8",@"Alert 9",@"Alert 10",nil];
表格视图方法
else if (tableView.tag==2) {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(45, 2, 170, 24)];
contentLabel.numberOfLines =0;
contentLabel.font = [UIFont fontWithName:@"Arial" size:11];
contentLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6];
[cell.contentView addSubview:contentLabel];
}
contentLabel.text = [tempArray objectAtIndex:indexPath.row];//crashes here
return cell;
}
崩溃日志
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 10 beyond bounds [0 .. 9]'
答案 0 :(得分:0)
可能的原因:
tempArray不包含索引等于indexPath.row的元素
tempArray包含具有此类索引的元素,但它不是NSString对象。
答案 1 :(得分:0)
根据崩溃日志,您要求数组中的第10个对象,而数组只有0到9的对象。
因此请确保numberOfRowsInSection返回10.
答案 2 :(得分:0)
请保留tempArray数组,arrayWithObjects是autorelease,然后检查tableview的其他委托,例如numberOfRowsInSection等。