我正在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”];
我的类型转换是否存在问题?或者我是否忽略了一些容易解决的问题?
答案 0 :(得分:0)
curImg = (UIImageView*) imgString;
我想你想做更像这样的事情:
imgString = [ NSString stringWithFormat: @"img%d%d", i, column ];
UIImageView* imgView = [UIImageView initWithImage:[ UIImage imageNamed: @"redpiece.png" ]];
这是我在此页面中编写的代码,因此它甚至可能无法编译,但您的想法是需要使用您创建的字符串创建UIImage的UIImageView。