第二次按下按钮后计算返回

时间:2014-08-01 15:43:36

标签: objective-c xcode ios7 xcode5

我是Objective C的新手。我在创建单位转换应用时遇到了问题。这是违规代码(P.S我意识到这不是正确的转换):

问题在于,当我按下转换按钮时,它返回初始化值为0.然后我必须再次按下按钮以获得我的计算值。谢谢。

当然,我是一个巨大的菜鸟,这是我的第一天:)。

-(IBAction)convert:(id)sender{

int unitType;
double unitTemp1 = [_tempField.text doubleValue];
double unitTemp2 = 0;

switch(unitType)
{
    case 1:
        //Celcius to Farenheight
        NSLog(@"Celcius to Farenheight Selected");
        unitTemp2 = unitTemp1*9;
    break;
}

if([_array objectAtIndex:1])
{
    unitType = 1;
}


NSString* resultString = [[NSString alloc] initWithFormat:@"%f",unitTemp2];
_tempResult.text = resultString;
//initwithformat
}

2 个答案:

答案 0 :(得分:1)

这是因为您在切换后设置了unitType,解决方案是移动上面的代码,并为您的交换机提供默认值

int unitType = 0;

if([_array objectAtIndex:1])
{
    unitType = 1;
}


switch(unitType)
{
    case 1:
        //Celcius to Farenheight
        NSLog(@"Celcius to Farenheight Selected");
        unitTemp2 = unitTemp1*9;
    break;
    default:
        //match anything else
        NSLog(@"Celcius to Farenheight not Selected");
    break;

}

答案 1 :(得分:0)

尝试移动if语句,使其在switch语句

之前初始化为一个值
int unitType;

if([_array objectAtIndex:1])
{
    unitType = 1;
} else
{ 
    unitType = 0;
}