2012-04-29 10 views
0

을하게합니다. UI 액션을 처리하는 동안 어떤 조건에서 사용하여 [[NSRunLoop currentRunLoop] runUntilDate : [있는 NSDate 날짜] 예정 메시지 무리가 <code>performSelector</code>를 사용하여 내가 가진 어떤 시점에서 예약 선택기 화재 내 응용 프로그램에서

은 내가 발사하기위한 모든 현재 예정된 선택기를 기다릴 필요가있다.

내 코드를 다른 방법으로 배치하고 을 사용하여 order 값을 높게 설정하면 마지막으로 실행될 수 있지만 충분히 추악한 해결책이 될만한 이유가 있습니다.

그래서 나는 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]] 보내 그리고 내가 그것을 필요로하는 것처럼 작동하는 것 같다. 그건 그냥 하나의 반복의 실행 루프 롤을 할 수있는 합법적 인 방법 인 경우

아직도 잘 모르겠어요. 또한이 접근법과 관련된 잠재적 문제가 있습니까? 내 자신의 질문에 대답 좋아

답변

2

.

우선 duplicate (또는 this)입니다.

  1. 이론적으로, 오토 릴리즈 풀은 그런 식으로 배수 얻을 것이다 :

    다음으로, 일반적으로 동일한 실행 루프 내에서 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]]을 보내는 것은 좋은 생각이다. 실제로는 runUntilDate (ARC 하에서) 이전에 할당 된 객체를 사용하여 내 응용 프로그램을 중단시키지 못했지만 어쨌든 위험을 감수하지 않는 것이 좋습니다. 어떻게 든 다른 작업이 그 runUntilDate 동안 대기열에서 제거됩니다 경우

  2. 그것은 예상치 못한 부작용이 발생할 수 있습니다.

TL; DR 나는 스스로 결정을 내리고 그 코드 조각을 좀 더 결정 론적 인 것으로 대체해야합니다.