让MBProgressHUD调用一个返回值的方法

时间:2011-06-02 21:24:31

标签: iphone mbprogresshud

我想将MBProgressHUD用于......

[HUD showWhileExecuting:@selector(fetchDomainStatus) onTarget:self withObject:nil animated:YES];

但我需要调用一个返回domainStatus(int)的方法(fetchDomainStatus)。

如果没有某些类变量,我怎么能这样做呢?

2 个答案:

答案 0 :(得分:1)

如果你可以使用积木(例如,你的应用程序是iOS 4.0+)你可以做这样的事情,并且仍然保留所有线程魔法:

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    // Do the task in the background
    int status = [self fetchDomainStatus];
    // Hide the HUD in the main tread 
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

答案 1 :(得分:0)

你想要做的可能是:

[HUD show:YES];
int status = [self fetchDomainStatus];
[HUD hide:YES];

否则,使用“withObject”参数传入指向对象(可能是NSValue对象)的指针,您可以在其中存储返回值。你必须修改fetchDomainStatus以获取NSValue *参数,如果你这样做的话。