2009-03-27 3 views
1

특정 조건이 충족 될 때까지 반복해야하는 방법이 있습니다.obj-c/iPhone SDK에서 mthod를 호출하려면 어떻게해야합니까?

{다시

실행이 방법

} 다른 {

}

(조건이 충족되지 않는) 경우 것이하지만 나도 몰라 : 저는 같은 문을 사용하고 있습니다 '이 방법을 다시 실행하는 방법'. 이 방법은 runAction이라고 불려서 [self runAction]을 시도했지만 런타임 오류가 발생했습니다.

도움을 주시면 감사하겠습니다.

감사

+0

런타임 오류 란 무엇입니까? –

답변

3

자체가 합법적 내에서 메소드를 호출하지만

2

rpetrich 당신에게 정답을 주신 무한에게 전화를 경우 스택 오버플로 끝날 수 있지만, 당신이 대신 루프를 사용하는 것으로 생각하십니까?

while (condition is not met) 
{ 
    // logic that affects condition. 
} 

는 '조건'이 중 어느 것도 정확하고 교착 상태가 발생할 수있는 다음 외부 세력 (사용자 입력, 다운로드 등)에 따라 달라집니다 또한 경우 - 이가지 경우들이 모두 대기 완료되지 수 있기 때문에 적절한 곳이다 다른쪽에.

이러한 경우에는 XXX 초마다 상태를 확인하는 타이머를 사용해야합니다. 가장 쉬운 방법은 지정된 시간 후에 호출을 트리거하는 데 사용할 수있는 'performSelector'함수를 사용하는 것입니다.

예.

-(void)someFunc 
{ 
    if(!condition) 
    { 
    [self performSelector:@selector(someFunc) withObject:nil afterDelay:1.0]; 
    } 
} 
+0

busy-wait 루프를 사용하는 대신 NSCondition을 조사 할 수도 있습니다. –

관련 문제