1

我正在使用以下代码将图像设置为 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) 
4

2 回答 2

5

我认为你没有得到 UIImageView 对象,你得到的是 uiview 类型对象,这就是它崩溃的原因。您应该尝试定义另一个标记属性,例如 999+indexPath.row。在您定义 tag=0 或 IB 自动将 tag=0 用于所有对象的某个地方得到它,因此它使用带有标签 0 的 uiview 而不是 uiimageView

于 2012-08-20T11:02:58.370 回答
0

这意味着您将消息 -(void)setImage 发送到 UIView,而不是 UIImageView。确保带有标签 indexPath.row 的视图和数组中的所有单选按钮实际上都是 UIImageView

于 2012-08-20T11:01:10.583 回答