이 시나리오를 고려하십시오.다른 메서드가 Objective C에서 작동 할 때까지 기다릴 메서드를 만드는 방법은 무엇입니까?
-(void) mainMethod
{
[self subMethod1];
[self subMethod2];
}
내 가정 다음 mainMethod
를 호출 할 때
, 그것은 subMethod1
첫째, 다음 subMethod2
를 호출합니다. 그러나 "subMethod1
만 완료하면 subMethod2
이 호출되어야합니다"라는 규칙은 없습니다. subMethod1
에 일부 지연 선 또는 길이가있는 일부 애니메이션을 사용하면 컨트롤이 완료 될 때까지 기다리지 않습니다. 다음 프로세스가 시작됩니다. 따라서 subMethod1
이 작업을 완료하기 전에 subMethod2
을 호출 할 수 있습니다. 내가 맞습니까?
질문 :
subMethod1이 작업을 완료까지 어떻게, subMethod2 기다려야 만들 수 있습니까?
참고 : 나는 (UIView의 애니메이션은 애니메이션이 발생 후 실행되는 블록이 같은) 당신은 완료 블록을 사용한다 subMethod2
블록으로 보거나 GCD – jcesarmobile
궁금한 점이 있습니까? '[NSOperationQueue mainQueue] performSelector : onShread (subMethod1) onThread : [NSThread mainThread] withObject : self waitUntilDone : YES]; 그리고 다음 줄에서는 정상적으로'subMethod2'를 호출합니다. – matsr
@matsr, 그게 효과가있을 것 같아요, 또한 UI를 차단합니다 완료 블록 또는 GCD를 사용하여 UI를 차단하지 않습니다 – jcesarmobile