【发布时间】:2012-03-27 03:04:20
【问题描述】:
我正在 Xcode 中为一个类项目创建一个 Connect Four 类型的游戏,但我遇到了一个辅助函数。我在“游戏板”的每一列上方都有一个按钮,可以将棋子放入游戏中。该板本质上是一个 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;
}
}
}
}
应该把column作为参数,然后到相应的UIImageView,把那里的图片设置为当前玩家token。
但是我得到了:
-[__NSCFString setImage:]: 无法识别的选择器发送到实例 0x6b09ee0
就行了:curImg.image = [ UIImage imageNamed:@"redpiece.png" ];
我的类型转换有问题吗?还是我忽略了一些容易解决的问题?
【问题讨论】:
-
您希望
curImg = (UIImageView*) imgString做什么?我不明白你为什么认为这是合适的。imgString是NSString。铸造它不会改变它的本质。它只是改变了编译器的认为。所以基本上,你在对编译器撒谎,它在你的脸上爆炸。 -
你有
UIImageViews 叫img11、img12、img21等吗?
标签: xcode