快速枚举循环中未声明的标识符错误

时间:2013-07-18 19:45:46

标签: objective-c compiler-errors identifier

我一直在尝试为一副牌写一个应用程序,但我的代码中一直出错。错误发生在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;
    }
}

1 个答案:

答案 0 :(得分:1)

您的card课程被card变量屏蔽。

card *card = [self cardAtIndex:index];

这意味着for each循环在这里失败:

for (card *otherCard in self.cards) {

尝试使用大写字母C将card班级更改为Card(大写班级名称也是好的风格)。或者,您可以将card变量重命名为flipCard等其他内容。