2011-02-08 16 views
0

は、だから私は、3つのボタンのいずれかが押されたときに、私が呼び出すメソッドを持っている:if文がスキップされる理由は何ですか?

- (IBAction)saveNetwork:(id)sender 
{ 
    NSString *networkEntered; 

    if (sender == button1) 
     networkEntered = @"button1"; 

    if (sender == button2) 
     networkEntered = @"button2"; 

    if (sender == button3) 
     networkEntered == @"button3"; 
     //more work... 
} 

問題は、それは決して関係なく、送信者として渡されているもの、第三あればヒットしないこと、です。私は他の場合は、他の、などを試した...

何が起こっているのですか?

問題は、ボタンオブジェクトなどを渡す方法ではありません。なぜなら、button1が押されていれば、それはうまくいけば入りますが、何らかの理由で最後のものを決してチェックしないからです。 。

お読みいただきありがとうございます。

+0

ランスは、数時間が経過したので、答えの左側にある明確な矢印をクリックして、回答を「受け入れる」ことを忘れないでください。 –

答えて

9

3番目のブロックに比較==があります。 networkEntered == @"button3";の代わりにnetworkEntered = @"button3";

ブロックが入力されている場合は3番目のブロックが予想されます。

+6

良いキャッチ。 OPはおそらくより多くのコンパイラの警告をオンにしようとする必要があります。この種の問題は通常、「ステートメントは効果がありません」という警告として検出されます。 –

+2

ここにXCodeのコンパイラ警告のリファレンスがあります - http://developer.apple.com/tools/xcode/compilercodewarnings.html – cweston

+0

ねえありがとう:)私はこれを投稿してから数時間後に問題が発生していることを発見しました。他の問題に移動:) – Lance

4

よく、第3の効果を考慮すると、割り当てよりも平等な比較だから、うまくいきません。 ;)

networkEntered == @"button3"; 

は次のようになります。

networkEntered = @"button3"; 

この質問を書きながらそれはただのタイプミスでない限り?あなたは3番目のボタンのための方法にタッチアップインサイドアクションをフックアップした場合:)

1

networkEntered == @"button3"; はおそらく networkEntered = @"button3";

0

を参照してくださいする必要があります。

関連する問題