当我的图像数组中没有要添加的图像时,我一直收到未捕获的异常错误。以下是我的一些代码:
这是我的
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
方法:
UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];
self.photoImage = image;
[self.photoArray addObject:self.photoImage];
//[self.tableView reloadData];
[picker dismissViewControllerAnimated:YES completion:nil];
这是我的TableView单元格块:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ListPrototypeCell" forIndexPath:indexPath];
XYZToDoItem *toDoItem = [self.toDoItems objectAtIndex:indexPath.row];
cell.textLabel.font = [UIFont fontWithName:@"Poiret One" size:18];
cell.textLabel.text = toDoItem.itemName;
NSDictionary *dict = [self.tableArray objectAtIndex:indexPath.row];
cell.detailTextLabel.textColor = [UIColor grayColor];
cell.detailTextLabel.text = [dict objectForKey:@"Time"];
//adding blank index and crashing
UIImage *photo = [self.photoArray objectAtIndex:indexPath.row];
cell.imageView.image = photo;
if (toDoItem.completed) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
我在[View DidLoad]方法中初始化了数组。
答案 0 :(得分:0)
为了确保你在界限范围内,你可以这样做:
if(indexPath.row<[self.photoArray count]) //add the photo
但是,我会担心你为什么首先得到这个错误。是因为self.toDoItems
,self.tableArray
和self.photoArray
是不同大小的数组吗?如果是这样,那么一定要检查它们的尺寸。
编辑:对于评论中的第二个问题,要在addButton方法上添加空行,您需要向数据源添加一个空对象。我认为你必须:
[self.toDoItems addObject:<whatever your empty object looks like>];
[self.tableArray addObject:<whatever your empty object looks like>];
[self.tableView reloadData];
数据更新后,您必须更换最后一个单元格(空对象),如下所示:
[self.toDoItems replaceObjectAtIndex:[self.toDoItems count]-1 withObject:newObject];
[self.tableArray replaceObjectAtIndex:[self.tableArray count]-1 withObject:newObject];
[self.tableView reloadData];