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 件のコメント:
コメントを投稿