2009-03-26 4 views
0

그래서 WWW에 연결을 시도하는 검사를 만들려고합니다. 실패하면 응용 프로그램이 포기하고 종료되기 전에 여러 번 다시 시도해야합니다. 재시도 할 때마다 재시도 또는 취소 옵션이있는 UIAlertView를 사용하여 사용자를 보호합니다.NSOperation 내의 UIAlertView가 iPhone에서 모달이 아닙니다.

그래서 여기에 문제가 있습니다.

NSOperationQueue에 일련의 작업 체인이있어 모든 작업이 연결되지 않고 실패합니다. I "는 UI 잠금 dosn't 데이터는 백그라운드에서 처리 될 수 있도록 NSoperation 큐를 사용하고 있습니다. NSInvocationOperation 내부

[AlertView 쇼] 칠 것이다 내 방법 그러나이 진정 모달 아니다.

그런 다음 내 작업은 NSOperations 체인을 통해 반환됩니다. 추가 처리를 중단하기 위해 오류 값을 반환 할 방법이없는 것처럼 보이므로 결국 UI가 발생하고 Modal AlertView가 표시되지만 컨텍스트가 없습니다. 무슨 일이 있었는가요?

이것은 일반적인 요구 사항 일 것입니다.이 아이디어를 얻는 방법은 무엇입니까?

답변

2

정확하게 이해한다면 UIAlertView의 모달 버전이 필요하지만 호출하는 스레드/NSOperation 내에서만 모달이 필요합니까? 이와 몇 가지 문제 : 메인 스레드에서

  • 당신은 아마에만 호출해야 인터페이스 작업 (쉽게 performSelectorOnMainThread :
  • 모달 대화 상자가 정말 OS의 일부가 아닌 사용하여 해결; 당신은 이것을 프로그램 적으로 다룰 필요가있을 것이다.
+0

천재! 다음을 사용하고 문제를 완벽하게 해결했습니다! \t [NoConnectionAlertView performSelectorOnMainThread : @selector (show) withObject : nil waitUntilDone : YES]; \t while (! Dismissed) { \t \t [NSThread sleepForTimeInterval : 1]; \t} – Bluephlame

관련 문제