0

我正在尝试编写一个基本的 DST 转换器。我有一个带有 3 个选项的分段控件,它们的标题(令人惊讶的是)是距离、速度和时间。我有 2 个输入文本字段和一个计算按钮,以及每个文本字段的 2 个标签,其中包含所需的测量类型及其单位。在分段控件上进行选择应相应地更新视图。这些变量都被声明为 IBOutlets、@property、@synthesize,并且代码位于一个连接到分段控件的 IBAction 方法中。以下代码不起作用,我是否遗漏了一些完全明显的东西?(NSLog 显示正确的标题)

NSString *choice;    
choice = [dstChoiceSegmentedControl titleForSegmentAtIndex: dstChoiceSegmentedControl.selectedSegmentIndex];
    NSLog(@"Choice |%@|", choice);
    if (choice == @"Distance") {
        firstLabel.text = @"Speed:";
        firstUnitsLabel.text = @"kts";
        secondLabel.text = @"Time:";
        secondUnitsLabel.text = @"hrs";
        answerUnitsLabel.text = @"nm";
    } else if (choice == @"Speed") {
        firstLabel.text = @"Distance:";
        firstUnitsLabel.text = @"nm";
        secondLabel.text = @"Time:";
        secondUnitsLabel.text = @"hrs";
        answerUnitsLabel.text = @"kts";
    } else if (choice == @"Time") {
        firstLabel.text = @"Distance:";
        firstUnitsLabel.text = @"nm";
        secondLabel.text = @"Speed:";
        secondUnitsLabel.text = @"kts";
        answerUnitsLabel.text = @"hrs";
    }

感谢您的帮助(我希望这不是一些愚蠢的错误让我眼前一亮)!

4

1 回答 1

0

您不能以这种方式比较字符串。你需要做:

[choice isEqualToString:@"Distance"];

但如果我是你,我会检查指标。

编辑:进一步解释:你正在做的choice == @"Distance"是将指针与字符串进行比较,这是行不通的。您需要调用如上所示的字符串对象比较方法。

于 2010-08-26T11:40:56.570 回答