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



我正在Xcode中为一个类项目创建一个Connect Four类型的游戏,但遇到了一个helper函数。我在"游戏板"的每一列上方都有一个按钮,可以将棋子放入游戏中。该板本质上是一个7x6网格的UIImageView(无论这是否是我真正不关心的最实用的,它大约和我们在这节课上学到的一样多)。

我的助手功能:(在.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=[UIMImage imageNamed:@"redpiece.png"];

我的打字有问题吗?还是我忽略了一些容易解决的问题?

Kevin在他的评论中有一个很好的观点,这句话永远不会奏效:

curImg = (UIImageView*) imgString;

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

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

这是我在这个页面上写的代码,所以它甚至可能不会编译,但想法是你需要用你创建的字符串创建UIImage来创建UIImageView。

最新更新