我想在表格视图中显示不同的图像。我将图像名称存储在sqlite中。所以我想每次我只需要从数据库中询问图像名称并使用
cell.imageView.image = [UIImage imageNamed:[@"%@.jpg",[self.arraySonglistInfo objectAtIndex:indexPath.row] objectAtIndex:picture]]
但有些不对劲。我该怎么办? 方法是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
// Configure the cell...
NSInteger picture = [self.database.arrayColumnNames indexOfObject:@"picture"];
cell.imageView.image = [UIImage imageNamed:[@"%@.jpg",[self.arraySonglistInfo objectAtIndex:indexPath.row] objectAtIndex:picture]];
return cell;
}
错误是
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 2]'
并且有一个警告"表达结果未使用"在这一行:
cell.imageView.image = [UIImage imageNamed:[@"%@.jpg",[self.arraySonglistInfo objectAtIndex:indexPath.row] objectAtIndex:picture]];
答案 0 :(得分:0)
问题在于NSInteger图片行。当需要0到2之间的数字时,该计算产生了数字9223372036854775807。