2009-08-28 2 views
0

저는 아이폰 애플리케이션과 dev에 익숙합니다. 제 질문이 매우 기본적인 것이면 유감입니다. 나는 그물을 수색했지만 대답을 얻을 수 없었다.아이폰 - 이벤트를 즉시 터지게하는 방법

내 질문에, 사용자가 아이폰을 만질 때 이전 이벤트가 완료되기를 기다리는 대신 즉시 해당 이벤트가 실행되도록하고 싶습니다. touchBegan 메소드에서 while 루프 (다른 클래스에 있음)를 호출합니다. 다른 터치 이벤트가 발생하면 그 루프를 멈추고 싶습니다. 하지만 touchBegan 이벤트는 아직 터치가 시작된 상태에서 (대기중인 대신) 호출되지 않습니다.

누구든지 이전 이벤트가 끝날 때까지 기다리지 않고 즉시 터치 이벤트를 시작하는 방법을 알려주십시오.

미리 감사드립니다.

답변

1

iPhone에서 다음 이벤트가 처리되기 전에 하나의 이벤트가 완료까지 실행되어야합니다. 기본적으로 사용자 입력에 반응 할 수 있도록 오랜 시간 동안 실행되지 않는 코드를 원합니다.

처리 방법에는 여러 가지가 있습니다.

  1. 일부 코드를 새 스레드에 넣고 touchBegan 메소드에서 해당 스레드를 시작하십시오.
  2. 또는 루프를 주 스레드에서 여러 이벤트로 전환하십시오. 당신은 호출하여이 작업을 수행 할 수 있습니다

    - (void)initializeLoop 
    { 
        loopCounter = 0; 
        [self performSelector:@selector(nextLoop) withObject:nil afterDelay:0.0]; 
    } 
    
    - (void)nextLoop 
    { 
        loopCounter++; 
        if (loopCounter<MaxCount) 
        [self performSelector:@selector(nextLoop) withObject:nil afterDelay:0.0]; 
    } 
    

새로운 touchEnded 사건이 다른 사건 사이에 처리 할 수있는 그런 식으로. 지연을 0.0 이상으로 설정하면 앱의 응답 속도가 빨라집니다.

관련 문제