我没有那么长时间的编程,但这真让我感到困惑。 我有一个我正在为iPhone开发的存储卡游戏,它运行良好。我决定加入一个功能,就是当玩家2正在玩时,这些卡片会垂直翻转,这样你就可以将手机放在桌面上,每个玩家都可以在不转动手机的情况下看到这些卡片。这是按下卡片时的方法。
- (IBAction)buttonPressed:(id)sender {
self.clickCount ++;
self.playerTurn = [[PlayerTurn alloc]init];
[self.playerTurn turnDecider];
NSUInteger senderID = [sender tag];
if (self.playerTurn.PlayerOneIsPlaying) {
NSLog(@"player one is playing");
self.tileImage = [self.myCards.Images objectAtIndex:senderID];
[sender setImage:self.tileImage forState:UIControlStateNormal];
}else{
UIButton *butt = sender;
NSLog(@"player two is playing");
self.tileImage = [self.myCards.Images objectAtIndex:senderID];
[butt setImage:self.tileImage forState:UIControlStateNormal];
butt.imageView.transform = CGAffineTransformMakeScale(1, -1);
}
我首先发布整个方法,但是那个不起作用的部分就是这个
if (self.playerTurn.PlayerOneIsPlaying) {
NSLog(@"player one is playing");
self.tileImage = [self.myCards.Images objectAtIndex:senderID];
[sender setImage:self.tileImage forState:UIControlStateNormal];
}else{
NSLog(@"player two is playing");
UIButton *butt = sender;
self.tileImage = [self.myCards.Images objectAtIndex:senderID];
[butt setImage:self.tileImage forState:UIControlStateNormal];
butt.imageView.transform = CGAffineTransformMakeScale(1, -1);
}
奇怪的是这个。当我启动应用程序时,一开始一切正常,但过了一会儿,玩家开始看到他们的卡片是否随意翻转。奇怪的是,在控制台上,我可以看到NSLog消息“播放器正在播放”和“播放器2播放”应该是,所以我知道正在执行if语句的正确块。这怎么可能发生?它的行为就像它从if语句执行几行,然后从else语句执行一些行?有没有人遇到类似的东西?或者我在这里遗漏了什么?帮助赞赏。感谢