0

基本的なDSTコンバーターを作成しようとしています。私は3つの選択肢を持つセグメント化されたコントロールを持っています。それらのタイトルは(驚くべきことに)Distance、Speed、Timeです。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 に答える