2012-08-03 2 views
0

Reachability.h를 애플의 데모 앱에 구현했습니다. 문제는 연결을 확인하는 동안 내 앱이 멈춘다는 것을 알았 기 때문입니다.교수형을 피하기 위해 다른 방법으로 활동 표시기 추가하기

따라서 활동 표시기 (MBProgressHUD)를 추가했습니다. 그러나 표시기는 움직이지 않습니다. 그것은 응용 프로그램과 함께 실속.

그래서 활동 표시기를 주 스레드와 다른 다른 스레드 안에 넣는 것을 생각했지만 여전히 움직이는 것은 아닙니다.

참고 : 나는 매우

UPDATE를 경험하고 있지 않다 : 또한, 나는 행운과 기본 활동 표시를 시도했다.

- (void)anotherThread 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 


    HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view]; 
    [self.navigationController.view addSubview:HUD]; 

    // Set determinate mode 
    HUD.mode = MBProgressHUDModeDeterminate; 

    HUD.delegate = self; 
    HUD.labelText = @"loading"; 

    // myProgressTask uses the HUD instance to update progress 
    [HUD showWhileExecuting:@selector(crazyCounter) onTarget:self withObject:nil animated:YES]; 

    [pool release]; 
} 

답변

1

UI 코드는 메인 스레드에 보관해야합니다. 따라서 활동 표시기를 다른 스레드에 넣는 대신 GCD (그랜드 중앙 디스패치)를 사용하여 다른 스레드에서 확인 연결 코드를 전송할 수 있습니다. 작업이 완료되면 활동 표시기를 제거하거나 숨길 수 있습니다.

추신. 나는 무엇이 MBProgressHUD인지는 모르겠지만, [activityIndicator startAnimating]과 같은 것을 가지고 있는지 확인하고 싶습니다. 최소한 정상적인 활동 표시기의 경우 수동으로 켜야합니다.

+0

지금 GCD를 확인 중입니다! – Sobiaholic