2011-09-10 3 views
0

을 누른 다음 I 라인 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가 항상 하나가되는 것은 아닙니다. 내가 뭔가를 놓치고 있지만 무엇을 알아낼 수 없는지 확신합니다.

답변

0


내가 볼 수있는 것으로부터, 당신은 잊어 버렸을 것입니다. 4 행에 많은 공백을 넣은 후 화면의 보이지 않는 영역에 위치합니다 (적어도 스크롤하지 않으면). 라인 5 내부를 넣어보십시오 {} 당신이 내부에 단 한 줄의 코드 만있는 경우에도, 그것은 괄호 안에있는 경우 블록을 넣어하는 것이 좋은 방법입니다 그래서

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

처럼 차단합니다. 많은 버그를 피할 수 있습니다.
다른 가능성은 당신이 single =을 if 절에 넣었다는 것입니다. (저에게 많이 일어납니다).

4: if (numTaps=1) 

실제로 코드가 1이 될 때 numTaps 변수에 1을 할당하므로 내부가 1입니다.

+0

나는 중괄호 안에 줄을 넣으려고했는데, if (numTaps == 1)라고 분명히했다. 그러나 그것은 효과가 없습니다. –

관련 문제