0

なぜこれが起こるのですか?コードを使用して...

- (IBAction)dismissKeyboard:(id)sender {
    if(textField.text == label.text) {
        NSLog(@"Correct!");
    }
    else {
        NSLog(@"Error?");
        NSLog(textField.text);
        NSLog(label.text);
    }
}

ステートメントは偽であると評価され、出力されます...

Error?

Word
Word

言葉は同じなのですが、if文が失敗… どうしてですか?まったく同じ単語を印刷しているが、ステートメントがそれらを偽と比較している場合、なぜこれが起こっているのかわかりませんか?

if ステートメントで間違っていることはありますか? 助けてください。前もって感謝します。

4

2 に答える 2

1

NSStringクラスです。NSString2 つのオブジェクト (または任意のクラスのオブジェクト) が同じ値を持っているかどうかを確認する適切な方法は、 を使用することisEqual:です。の場合はNSStringご利用いただけますisEqualToString:

if ([textField.text isEqualToString:label.text]) {
}
于 2013-05-17T03:10:49.320 に答える
1

記号 == はメモリ位置を比較します。同じオブジェクトを参照しているかどうかを確認します。

変数内の文字列値を比較するには、メソッド「isEqualToString:」を使用する必要があります。

于 2013-05-17T03:55:55.773 に答える