2010-12-09 3 views
0

Привет, извините за такой немой вопрос Я меняю значение переменной в зависимости от индекса сегментированного элемента управления, но затем хочу использовать эту переменную в следующем вычислении; я уверен, что это имеет какое-то отношение к переменному охвату?Действительно действительно базовый вопрос Obj-C об передаваемых переменных экземпляра

- (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); 

}

Помощь высоко ценится!

+0

Просто объявите свой float var в файле интерфейса между фигурными скобками, такими как float s; и в вашем методе IBAction (и в любом другом месте) вы можете получить к нему доступ напрямую. – Rog 2010-12-09 01:40:28

ответ

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); 

}

Да, его объем - переменная видна только внутри вашей фигурные скобки.

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

Да, это то, что я думал. Я попытался объявить float за пределами оператора if (как в ответе выше), но он все еще недоступен ниже оператора if. И Im получает локальную декларацию s sides исключений переменных экземпляра. – zed111 2010-12-09 01:48:42

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