2009-05-10 18 views
2

VRAI débutant ici à l'objectif C et cacao.Erreur de syntaxe Obj-C sur l'instruction if ... Pourquoi?

Je cette 'instruction if'

if (cardCount = 2) 
    UIImage *image = [UIImage imageNamed: @"Card 2.png"]; 

Cela me donne "erreur: erreur de syntaxe avant '*' jeton"

Pourquoi? La ligne UIImage fonctionne bien par elle-même.

J'apprécierais un pointeur vers ce que j'ai mal fait.

Merci Paul

Répondre

14

Tout d'abord, la condition devrait lire cardCount == 2 mais ce n'est pas la cause de cette erreur. Le problème est que la déclaration de variable et l'initialisation ne comptent pas comme une instruction dans la grammaire du langage. C'est une déclaration. Vous ne pouvez pas avoir une déclaration comme le corps de if, while, etc. (en passant, un bloc est considéré comme une déclaration, qui peut contenir des déclarations, donc c'est une chose différente). Après tout, il n'y a pas d'utilité car il va tomber hors de portée immédiatement, donc c'est interdit.

UIImage *image; 
if (cardCount == 2) 
    image = [UIImage imageNamed: @"Card 2.png"]; 

Si vous avez juste besoin de cette variable dans l'instruction if (je doute que ce soit ce que vous voulez bien):

if (cardCount == 2) { 
    UIImage* image = [UIImage imageNamed: @"Card 2.png"]; 
    // code to use `image` 
} 
+0

Merci! Cela a fait l'affaire! J'aimerais pouvoir voter mais c'est ma première question! –