получение ошибки [NSCFString setBackgroundImage: forState:]: - PullRequest
0 голосов
/ 24 ноября 2010

Я получаю следующую ошибку при добавлении фонового изображения к содержимому ячейки табличного представления

 [NSCFString setBackgroundImage:forState:]: unrecognized selector sent to instance

    UIButton *playBtn = [UIButton buttonWithType:UIButtonTypeCustom];
            playBtn.frame = CGRectMake(x+playBtnXPos, y+playBtnYPos, playBtnWidth, playBtnHeight); 
            [playBtn addTarget:self action:@selector(playBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
            if(playingButton && streamer){
                if(playingButtonTag == i && [streamer isPlaying]){
                    [playBtn setBackgroundImage:[UIImage imageNamed:pauseBtnimgName] forState:UIControlStateNormal];
                    playingButton = playBtn;
                }else [playBtn setBackgroundImage:[UIImage imageNamed:playBtnimgName] forState:UIControlStateNormal];
            }else [playBtn setBackgroundImage:[UIImage imageNamed:playBtnimgName] forState:UIControlStateNormal];
            playBtn.tag = i;

            [cell.contentView addSubview:playBtn];

.....

Кто-нибудь может мне помочь ...

спасибо ...

Ответы [ 2 ]

3 голосов
/ 24 ноября 2010

Если у вас есть проблемы с управлением памятью (селекторы, отправленные в неправильные экземпляры, являются признаком проблем с управлением памятью), вы можете сделать следующее:

  1. Перечитать Какао правила управления памятью и убедитесь, что вы следуете им.
  2. Запустите статический анализатор .Это часто приводит к тому, что вы пренебрегали правилами управления памятью.
  3. Попробуйте использовать NSZombieEnabled, чтобы выяснить, [и когда] вы отправляете сообщения в нераспределенные экземпляры.*
0 голосов
/ 24 ноября 2010

Среда выполнения все говорит: вы пытаетесь вызвать что-то в NSString, которое не существует, и я точно знаю, что [NSCFString setBackgroundImage:forState:] не существует, отсюда ошибка и «возможно» сбой.Компилятор должен показать вам предупреждение в исходном коде, где вы ошибаетесь.

...