在另一种方法中添加活动指示符以避免挂起

时间:2012-08-03 22:12:23

标签: objective-c ios xcode reachability

我已经将Apple的Reachability.h实现到我的演示应用程序中。问题是我注意到我的应用程序在检查连接时停止了。

所以,我添加了一个活动指标(来自MBProgressHUD)。但该指标并不具有动画效果。它也停止了应用程序。

所以,我想把活动指示器放在另一个不同于主线程的线程中,但它仍然不是动画。

注意:我不是很有经验

更新:此外,我已经尝试了原生的活动指标而没有运气。

- (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 个答案:

答案 0 :(得分:1)

UI代码应保存在主线程中。因此,您可能希望使用GCD(大中央调度)将检查连接代码放在另一个线程中,而不是将活动指示器放入另一个线程中。完成后,您可以删除或隐藏您的活动指示器。

PS。我不太清楚MBProgressHUD做了什么,但你确实希望确保你有[activityIndicator startAnimating]之类的东西。至少对于正常活动指标,您需要手动打开它。