得到错误[NSCFString setBackgroundImage:forState:]:

时间:2010-11-23 21:31:24

标签: iphone memory-management uiimageview uiimage uibutton

我在将背景图像添加到表格视图单元格的内容时收到以下错误

 [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 个答案:

答案 0 :(得分:3)

当您遇到内存管理问题时(选择器被发送到错误的实例是内存管理问题的一个标志),您可以执行以下操作:

  1. 重新阅读Cocoa memory management rules并确保您关注它们。
  2. 运行static analyser。这通常会占用您忽略内存管理规则的地方。
  3. 尝试使用NSZombieEnabled查看是否[以及何时]向未分配的实例发送邮件。

答案 1 :(得分:-1)

运行时说的都是:你试图调用NSString中不存在的东西,我确信[NSCFString setBackgroundImage:forState:]不存在,因此错误和“可能“崩溃。编译器应该在你的源代码中向你显示一个警告你的错误。