无法识别的选择器发送到实例(类型转换问题?)

时间:2012-03-27 03:04:20

标签: xcode

我正在Xcode中为一个类项目创建一个Connect Four类型游戏,并且我正陷入辅助函数。我在“游戏板”的每一列上方都有一个按钮,可以将棋子放入游戏中。该板本质上是UIImageView的7x6网格(无论这是否是我真正关心的最实用的,它与我们在本课程中教授的一样多。)

我的助手功能: (以.h声明:     NSString * imgString;     UIImageView * prevImg;     UIImageView * curImg; )

-(void) dropToken:(int) column
{
    [ self checkTurn ];
    for(int i=1; i<6; i++)
    {
        imgString = [ NSString stringWithFormat: @"img%d%d", i, column ];
        curImg = (UIImageView*) imgString;
        curImg.image = [ UIImage imageNamed: @"redpiece.png" ];
        if(i != 6)
        {
            prevImg = curImg;
            imgString = [ NSString stringWithFormat: @"img%d%d", i+1, column ];
            curImg = (UIImageView*) imgString;
            if(curImg.image == nil)
            {
                prevImg.image = nil;
                curImg.image = curToken;
            }
        }
    }
}

它应该将列作为参数接收,然后转到相应的UIImageView,并将图像设置为当前玩家令牌。

但是我得到了:

  

- [__ NSCFString setImage:]:无法识别的选择器发送到实例0x6b09ee0

就行:curImg.image = [UIImage imageNamed:@“redpiece.png”];

我的类型转换是否存在问题?或者我是否忽略了一些容易解决的问题?

1 个答案:

答案 0 :(得分:0)

凯文在评论中有一个很好的观点,这条线永远不会奏效:

curImg = (UIImageView*) imgString;

我想你想做更像这样的事情:

imgString = [ NSString stringWithFormat: @"img%d%d", i, column ];
        UIImageView* imgView = [UIImageView initWithImage:[ UIImage imageNamed: @"redpiece.png" ]];

这是我在此页面中编写的代码,因此它甚至可能无法编译,但您的想法是需要使用您创建的字符串创建UIImage的UIImageView。