我一直在尝试为一副牌写一个应用程序,但我的代码中一直出错。错误发生在otherCard
并说
未声明的标识符otherCard。
#define MATCH_BONUS 4
#define MISMATCH_PENALTY 2
#define FLIP_COST 1
- (void)flipCardAtIndex:(NSUInteger)index
{
card *card = [self cardAtIndex:index];
if (!card.isUnplayable){
if(!card.isFaceUp){
for (card *otherCard in self.cards) {
if (otherCard.isFaceUp && !otherCard.isUnplayable) {
int matchscore = [card match: @[otherCard]];
if (matchscore) {
otherCard.unplayable = YES;
card.unplayable = YES;
self.score += matchscore * MATCH_BONUS;
} else {
otherCard.faceUp = NO;
self.score -= MISMATCH_PENALTY;
}
break;
}
}
self.score -= FLIP_COST;
}
card.faceUp = !card.isFaceUp;
}
}
答案 0 :(得分:1)
您的card
课程被card
变量屏蔽。
card *card = [self cardAtIndex:index];
这意味着for each循环在这里失败:
for (card *otherCard in self.cards) {
尝试使用大写字母C将card
班级更改为Card
(大写班级名称也是好的风格)。或者,您可以将card
变量重命名为flipCard
等其他内容。