2013-07-18 2 views
0

Я пытался написать приложение для колоды карт, но я продолжаю получать ошибку в своем коде. Ошибка находится на otherCard и говоритОшибка идентификатора ошибки в быстром цикле перечисления

необъявленный идентификатор другойCard.

#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

Это говорит вам, в какой строке находится ошибка? –

+2

Измените класс 'card' на' Card'. Вы маскируете его локально, поэтому для каждого цикла не выполняется. – thegrinner

ответ

1

Ваш card класс маскируется переменной card.

card *card = [self cardAtIndex:index]; 

Это означает, что для каждого цикла не удается здесь:

for (card *otherCard in self.cards) { 

Попробуйте изменить card класс Card с большой буквой (прописные буквы имен классов хороший стиль тоже). В качестве альтернативы вы можете переименовать переменную card в нечто вроде flipCard.

Смежные вопросы