我正在使用以下代码将图像设置为UIImageView
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
for(int i=0;i<[radioButtons count];i++){
[[radioButtons objectAtIndex:i] setImage:[UIImage imageNamed:@"checkbox_unchecked.png"]];
}
UIImageView *imageViews=(UIImageView *)[self.view viewWithTag:indexPath.row];
[imageViews setImage:[UIImage imageNamed:@"checkbox_checked.png"]];
}
因此,在单击任何tableview单元格时,图像将获得设置。但是,如果我点击objectatindex:0
然后应用程序崩溃。我无法解决这个问题。
以下是崩溃日志:
2012-08-20 16:25:36.321 EventApp[2422:12503] -[UIView setImage:]: unrecognized selector sent to instance 0x79642b0
2012-08-20 16:25:36.321 EventApp[2422:12503] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setImage:]: unrecognized selector sent to instance 0x79642b0'
*** First throw call stack:
(0x1de3022 0x1c03cd6 0x1de4cbd 0x1d49ed0 0x1d49cb2 0x7a98c 0xc615c5 0xc617fa 0x14f685d 0x1db7936 0x1db73d7 0x1d1a790 0x1d19d84 0x1d19c9b 0x1be57d8 0x1be588a 0xbd0626 0x380a2 0x23b5)
terminate called throwing an exception(lldb)
答案 0 :(得分:5)
我认为你没有得到UIImageView对象,你正在获取uiview类型对象,这就是它崩溃的原因。你应该尝试定义另一个标签属性,如999 + indexPath.row。得到它你定义标签= 0或IB自动将tag = 0给所有对象所以它采取uiview标签0而不是uiimageView
答案 1 :(得分:0)
这意味着您正在向UIView发送消息 - (void)setImage,而不是UIImageView。确保带有标记indexPath.row的视图和数组中的所有radioButtons实际上是UIImageView