2011-08-05 3 views
0

Pourquoi ai-je cette erreur?Expression Résultat Erreur inutilisée dans Xcode

if(appDelegate.lastLevelIndex!=0) { 
     [self.view addSubview:creditView]; 
     NSString *level=[NSString stringWithFormat:(@"%d",appDelegate.lastLevelIndex)]; 
     label.text=level; 
     appDelegate.lastLevelIndex=0; 
    } 

Je reçois également un plantage ici en raison de l'erreur d'origine.

Répondre

4

Retirez les parenthèses ici:

NSString *level=[NSString stringWithFormat:(@"%d",appDelegate.lastLevelIndex)]; 
             ^       ^

Entraînant:

NSString *level=[NSString stringWithFormat:@"%d",appDelegate.lastLevelIndex]; 

La méthode stringWithFormat: attend une liste d'arguments séparés par des virgules. Le premier argument est une chaîne de format qui sert de modèle dans lequel les valeurs d'argument restantes sont substituées. Avec les parenthèses en place, cependant, vous passez un seul argument à stringWithFormat:, le résultat de l'évaluation de l'expression contenue entre les parenthèses.

(@"%d",appDelegate.lastLevelIndex) 
    ^

En C et, par extension, Objective-C une liste d'expressions séparées par un comma est évaluée de gauche à droite, et le type et la valeur du résultat sont le type et la valeur de l'opérande droit. Par conséquent, vous transmettez la valeur de appDelegate.lastLevelIndex, un entier, en tant que seul argument à la méthode stringWithFormat:, qui attend un NSString *. Par conséquent, l'accident. L'avertissement "Expression Result Unused" est dû au fait que l'expression de gauche @"%d" n'a aucun effet.

Questions connexes