おそらく非常に単純な問題ですが、私はすでに多くの時間を費やして諦めました...速度計算用のボタンとテキストフィールドがあります。ボタンを押して(km / h >> mph >> m / s >> km / hなど)、速度を再計算したら、ボタンのラベルを変更したいと思います。正常に動作する場合もありますが、CurrentSpeedValueが@ "km / h"であっても、「else」ステートメントにジャンプすることがよくあります。誰か助けてもらえますか?たぶんswitch-caseメソッドを使用する方が良いでしょうが、それはどのように述べられるべきですか?
- (IBAction)speedChange:(id)sender {
//CurrentSpeedUnit is saved to NSUserDefault in another action
if (CurrentSpeedUnit == @"km/h") {
[sender setTitle:@"mph" forState:UIControlStateNormal];
CurrentSpeedUnit = @"mph";
float speedToPrint = ([textSpeed.text floatValue]) / 1.609344;
textSpeed.text = [[NSString alloc] initWithFormat:@"%.3f", speedToPrint];
} else if (CurrentSpeedUnit == @"mph") {
[sender setTitle:@"m/s" forState:UIControlStateNormal];
CurrentSpeedUnit = @"m/s";
float speedToPrint = ([textSpeed.text floatValue]) * 1.609344 / 3.6;
textSpeed.text = [[NSString alloc] initWithFormat:@"%.3f", speedToPrint];
} else {
[sender setTitle:@"km/h" forState:UIControlStateNormal];
CurrentSpeedUnit = @"km/h";
float speedToPrint = ([textSpeed.text floatValue]) * 3.6;
textSpeed.text = [[NSString alloc] initWithFormat:@"%.3f", speedToPrint];
}
}