我是编程新手,我需要你的帮助...... 我有一个名为“typeLabel”的标签,其标签文本为“NiMH”。此文本通过pickerView更改为NiCad。我希望通过if语句来更改乘数值但是“unused variable floatTime”会暂停程序。代码是:
-(IBAction)calculate:(id)sender {
if ([typeLabel.text isEqualToString:@"NiCad"])
{
float floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.4;
} else {
float floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5;
}
int intHourhs=(floatTime);
float floatHours=(intHourhs);
float floatMinutes=(floatTime-floatHours)*60;
NSString *stringTotal = [NSString stringWithFormat: @"%1.1i Hours and %.0f Minutes", intHourhs, floatMinutes];
chargeLabel.text=stringTotal;
}
答案 0 :(得分:7)
您需要将声明移到if语句上方:
float floatTime;
if ([typeLabel.text isEqualToString:@"NiMH"])
{
floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5;
} else {
floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.4;
}
在范围内声明局部变量时,在该范围之外不可见。
答案 1 :(得分:1)
float floatTime
在if语句括号内定义,并定义它的范围。移出来:
float floatTime;
if ([typeLabel.text isEqualToString:@"NiMH"])
{
floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5;
} else {
floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.4;
}
大括号定义范围,其中定义的内容在外部不可用。
答案 2 :(得分:0)
你应该在if / else之外的主代码块中声明浮动时间,这就是你得到错误的原因。试试这个:
-(IBAction)calculate:(id)sender {
float floatTime;
if ([typeLabel.text isEqualToString:@"NiMH"])
{
floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5;
} else {
floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.4;
}