UIImageViewにimageを設定する際に例外!?
他人が作ったアプリのバグ修正依頼を受けた。
デバッグ実行してみると、
UIImageView
の image
に UIImage
を設定しようとして、例外が発生していた。
[XxxxxView setImage:]: unrecognized selector sent to instance xxxxxxxxxx
unrecognized selector
なので、メソッド名の指定に間違いがあるようだが…
ん、UIImageView
でなく XxxxxView
(該当画面のViewController) になってる?
ロジックを見てると、予め作成された UIImageView
を [self viewWithTag: tagNo]
で取得していたんだが、条件によって tagNo
が 0
になるパターンがあった。
for (int i=0; i<kX; i++) {
for (int j=0; j<kY; j++) {
NSInteger tagNo = [self getTagNoWithX:i Y:j]; // <- ここがおかしい
UIImageView *img = (UIImageView *)[self viewWithTag: tagNo];
img.image = [UIImage imageNamed:@"icon-name"];
}
}
[self viewWithTag: 0]
の時に 自分自身 (self
) が返ってきてしまう模様。
適切なTagNoを返すように修正した。
0 件のコメント:
コメントを投稿