2011-09-10 10 views
0

をタップして、あなたは私が1行目にnumTapsにtapCount値を割り当てる見ることができるように、今、問題UITouchタップ数に関係なく、私は私が最初にコードを書いてみましょう

-(void)touchesBegan:(NSSet*)touches withEvent(UIEvent*)event{ 

    1: NSUInteger numTaps=[[touches anyObject] tapCount]; 
    2: NSString *labelText=[NSString stringWithFormat:@"Number of counts %d", 
                    numTaps]; 
    3: self.tapLabel.Text=labelText; 
    4: if (numTaps==1) 
    5: NSLog(@"Number of taps is 1"); 
} 

を説明する回数を1に等しくありません。そして3行目では、タップ数に応じて、私のラベルはカウント数1,2,3,4 ... nを表示します。しかし、次に4行目でnumTapsが1に等しいかどうかチェックします。ここでは変なものがあります。タッチが何回タップされても、5行目のコマンドは常に実行されます。ですから、numTapsは常に1のように思えますが、どうして2行目に来るのですか?namTapsは必ずしも1つではありません。私はそこに何か不足していると確信していますが、何が分かりません。

答えて

0


私が見ることができるところから、あなたはいくつかを忘れてしまっているかもしれません。 4行目に多くの空白があると、スクリーンの目に見えない領域(少なくともそこまでスクロールしない場合)に配置されます。ライン5の内部に配置しようとすると、{}あなたが内部のコードを1行だけを持っている場合でも、それは、中括弧内の場合はブロックを置くことは常に良い習慣だそう

4: if (numTaps==1){ 
5:  NSLog(@"Number of taps is 1"); 
6: } 

のようにブロックします。多くのバグを避けることができます。
他の可能性は、あなたがsingle =をif節に入れたことです。

4: if (numTaps=1) 

実際には、numTaps変数に1を割り当てます。これは、コードが1になるときに1になります。

+0

私は括弧の中に行を入れてみましたが、if(numTaps == 1)としました。しかし、それは動作しません。 –

関連する問題