我是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
}
答案 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;
}