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"]];
}

したがって、テーブルビューのセルをクリックすると、画像が設定されます。しかし、一度クリックする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 をすべてのオブジェクトに取得するため、uiimageView ではなくタグ 0 の uiview を取得します

于 2012-08-20T11:02:58.370 に答える
0

これは、メッセージ -(void)setImage を UIImageView ではなく UIView に送信していることを意味します。タグ indexPath.row と配列内のすべての radioButtons を持つビューが実際に UIImageView であることを確認してください

于 2012-08-20T11:01:10.583 に答える