2010-12-09 5 views
0

Salut désolé à propos d'une telle question stupide Je modifie une valeur variable en fonction de l'indice d'un contrôle segmenté, mais je veux utiliser cette variable dans un calcul qui suit; Je suis sûr que cela a quelque chose à voir avec la portée variable?Vraiment vraiment basique Obj-C question sur le passage des variables d'instance

- (IBAction)calculate:(UIButton *)button { 
if([sSeg selectedSegmentIndex]==1){ 
    float s=0.5; 
    NSLog(@"s=%f", s); 
} 
else if ([sSeg selectedSegmentIndex]==0) 
{ 
    float s=1; 
    NSLog(@"s=%f", s); 
} 
NSLog(@”s now = %f”, s); 

}

aide a beaucoup apprécié!

+0

Déclarez simplement votre float var dans votre fichier d'interface entre les accolades comme float s; et dans votre méthode IBAction (et ailleurs), vous pouvez y accéder directement. – Rog

Répondre

4
- (IBAction)calculate:(UIButton *)button { 
    float s = 0; 
    if([sSeg selectedSegmentIndex]==1){ 
     s=0.5; 
     NSLog(@"s=%f", s); 
    } 
    else if ([sSeg selectedSegmentIndex]==0) 
    { 
     s=1; 
     NSLog(@"s=%f", s); 
    } 
    NSLog(@”s now = %f”, s); 

}

Oui, la portée de son - une variable est uniquement visible dans vos accolades.

0
- (IBAction)calculate:(UIButton *)button { 
    float s; 
    if([sSeg selectedSegmentIndex]==1){ 
     s=0.5; 
     NSLog(@"s=%f", s); 
    } 
    else if ([sSeg selectedSegmentIndex]==0) 
    { 
     s=1; 
     NSLog(@"s=%f", s); 
    } 
    NSLog(@”s now = %f”, s); 
} 
+0

Oui c'est ce que je pensais. J'ai essayé de déclarer float s en dehors de l'instruction if (comme dans la réponse ci-dessus) mais il n'est toujours pas accessible en dessous de l'instruction if. Et Im obtenir la déclaration locale de s cache les avertissements variables d'instance. – zed111

+0

Et si je déclare float s = 1 outside ethe fonction (mais dans l'action) je reçois de log s = 1, s = 0,5 s = 1 – zed111

+0

Hmm J'ai essayé de déclarer le flotteur partout! Cela devrait fonctionner ?! temps pour une tasse de thé :(... – zed111

Questions connexes