2010-02-07 4 views
2

J'ai une application de travail que je suis sur le point de distribuer et de mettre de l'ordre dans les déclarations NSLog. Lorsque je supprime NSLog d'une instruction "case", NSArray a déclaré dans l'instruction "case" des erreurs comme expression attendue avant AND non déclarée. Quelqu'un a-t-il une idée de la raison? Cela se produit sur toutes les déclarations de cas dans mon application où je supprime maintenant NSLog. Une sections de code exemple ci-dessous apparaît:La suppression de NSLog du SDK IPhone entraîne la non-déclaration de NSArray!

switch (chosenScene) 
{ 
    case 0: 
     //NSLog(@"group1"); // the following NSArray errors with "expected expression.." AND "..group1Secondsarray undeclared" 
     NSArray *group1SecondsArray = [NSArray arrayWithObjects: @"Dummy",@"1/15",@"1/30",@"1/30",@"1/60",@"1/125",@"1/250",nil]; 
     NSArray *group1FStopArray = [NSArray arrayWithObjects: @"Dummy",@"2.8",@"2.8",@"4",@"5.6",@"5.6",@"5.6",nil]; 
     NSString *group1SecondsText = [group1SecondsArray objectAtIndex:slider.value]; 
     calculatedSeconds.text = group1SecondsText; 
     NSString *group1FStopText = [group1FStopArray objectAtIndex:slider.value]; 
     calculatedFStop.text = group1FStopText; 
     [group1SecondsText release]; 
     [group1FStopText release];   
     break; 

Répondre

1

Je ne sais pas l'explication formelle, mais si vous faites quoi que ce soit autre que simple, cession ou de renvoyer une valeur dans la déclaration de cas alors vous avez besoin de le mettre entre crochets .

case 0: 
{ 
    NSArray* myArray=[NSArray arrayWithObjects:ob1, obj2,nil]; 
    ... 
} 
+0

C'est super, a résolu mon problème. Merci pour la réponse rapide, –

+1

Maxwell Segal - si cette réponse est cochée, le système sait que la question a été répondue et qu'Eyal Redler obtiendra le crédit. – TechZen

0

Vous ne devez pas libérer group1SecondsText et group1FStopText, ils ont un nombre de retenir 1 parce qu'ils sont dans le tableau, si vous les libérer, ils deviendront invalides, et lorsque le tableau est relâché, il cassera . Lorsque vous accédez à des objets dans un NSArray avec objectAtIndex:, il n'augmente pas le nombre de retenues, il renvoie simplement l'objet du tableau.

+0

Merci pour ceci et votre réponse rapide à mes questions. À votre santé. –

Questions connexes