Прежде всего, вы должны опубликовать трассировку стека ошибки, чтобы мы могли быть уверены, что ошибка происходит в этом коде.Возможно, вам потребуется установить точку останова исключения , чтобы получить трассировку стека, в которой произошла ошибка.
Во-вторых, сообщение об ошибке сообщает вам, что вы отправляете сообщение setImage:
UIRoundedRectButton
объект.Если ошибка возникает в коде, который вы разместили, то проблема в том, что cardView
это UIButton
, а не UIImageView
.Вы перебираете все подпредставления self.view
.Итак, мы знаем, что по крайней мере одно из этих подпредставлений является UIButton
, а не UIImageView
.
Кроме того, ваши вложенные циклы выглядят подозрительно.Я подозреваю, что вы пытаетесь сделать что-то вроде этого:
- (IBAction)showCard:(id)sender {
int i = 0;
for (UIView *view in self.view.subviews) {
if (![view isKindOfClass:[KCCardView class]])
continue;
KCCardView *cardView = (KCCardView *)view;
cardView.image = [[dealerHand objectAtIndex:i++] cardImage];
}
}
Это тоже не очень хороший способ сделать это, но это может сработать для вас.Лучшим способом было бы дать вашему контроллеру представления отдельный NSArray
, который содержит ссылки только на экземпляры KCCardView
.