2011-11-16 3 views
1

나는 루프를 for 사용하고 있는데, 나는 else if 조건을 사용하고있다. else if 중 하나에서 약간의 지연으로 for 루프를 계속하고 싶습니다. NSTimer에 continue 문을 사용할 수 있습니까? 가능하면 NSTimer에서 continue 문을 어떻게 사용할 수 있습니까? 루프 내에서 실행을 지연시키는 방법은 무엇입니까? NSTimer일까요?

for(int i = 0; i<[array count];i++){ 

    else if (condition) 
    { 
    } 
    else if (condition) 
    { 
    } 
    else if (condition) 
    { 
    } 
    else if (condition) 
    { 
     // Here I want to continue the for loop with some delay 
    } 
    else if (conditions) 
    { 
    } 
    else 
    { 
    } 

} 

어느 한 날

답변

5

사용 NSThread sleepUntilDate:NSDate dateWithTimeIntervalSinceNow:이 지연 도와주세요.

예 :

for(int i=0; i<5; i++){ 

    [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:1.0]]; 
    NSLog(@"Delaying"); 

} 

출력 :

15:57:46.383 Delaying 
15:57:47.386 Delaying 
15:57:48.388 Delaying 
15:57:49.389 Delaying 
15:57:50.391 Delaying 
+0

내 시간 간격은 0.005619 0.006389 0.005749 때문에 내 응용 프로그램이 매우 느리게 도착 절전 모드로 응용 프로그램의 0.006406 0.00639 0.008703 0.006125 0.006175 이 0.006125 0.00535 0.006128 0.00673 0.006082 같다. 다른 해결책을 제공해 주시겠습니까? – Bhaskar

+1

위의 코드를 다른 스레드에서 실행하면 인터페이스가 반응 형으로 유지됩니다. 원하는 간격을 지연시킬 수 있습니다. 예를 들어'[NSDate dateWithTimeIntervalSinceNow : 0.006125]'도 작동해야합니다. – Anne

0

나에게 보인다는 PAUZE하려는 스레드가 아닌 NSTimer를 사용하십시오. if 문에서 다음과 같은 내용이 표시됩니다.

[NSThread sleepforTimeInterval :]; 계속;

+0

내 시간 간격 때문에 내 응용 프로그램을 절전 모드로 응용 프로그램의 0.005749 0.006406 0.00639 0.008703 0.005619 0.006389 0.006125 0.006175이 0.006125 0.00535 0.006128 0.00673 0.006082처럼 매우 느리게 가져옵니다. 다른 해결책을 제공해 주시겠습니까? – Bhaskar

0

수면 (< # 휴지 기간 #>)을 사용하면됩니다.

관련 문제