2011-08-14 24 views
0

これで問題が発生しました。このコードは、私が望むように動作しません。Xcode:テキストボックスを含むステートメント

if (answer.text == @"text") { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
}else{ 
    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"title 2" message:@"Title 2" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [alert1 show]; 
    [alert1 release]; 
} 

私の問題は、テキストボックス 'answer'にテキスト 'text'があることです。最初のUIAlertViewはありません。それは常にelse {}の中の1つを実行します。このコードは、ボタンのIBActionにもあります。どんな助けも今良いです。

+1

'[answer.text isEqualToString:@" text "]'アウトレットが正しく接続されていることを確認してください( 'answer'は' IBOutlet'です)。 – Eimantas

+0

も役に立ちました。 – Tyler

答えて

4

演算子はポインタを比較するだけなので、NSStringの2つの同一インスタンスは等しいとは比較されません。代わりに、比較方法を使用します。

if ([answer.text isEqualToString:@"text"]) ... 
+0

助けてくれてありがとう! – Tyler

0
if ([text isEqualToString:@"text"]) { 

一つの良いノート:

の言語の多くでは、通常、刺さを比較する==を使用することをお勧めではありません。私は常に比較文字列の関数またはメソッドを探します。言語マニュアルに別段のことが言わない限り、私はあなたに勧めます。

+0

これは、多くの言語では変数がポインタに過ぎないからです。 ==は一般的にポインタの比較です。 –

関連する問題