иметь MBProgressHUD вызывать метод, который возвращает значение - PullRequest
1 голос
/ 03 июня 2011

Я хотел бы использовать MBProgressHUD с ...

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

но мне нужно вызвать метод (fetchDomainStatus), который возвращает domainStatus (int).

Как я могу сделать это без некоторой переменной класса?

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Если вы можете использовать блоки (т. Е. Ваше приложение - 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];
    });
});
0 голосов
/ 03 июня 2011

Вероятно, вы хотите сделать следующее:

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

В противном случае используйте параметр «withObject» для передачи указателя на объект (возможно, объект NSValue), где вы можете сохранить возвращаемое значение. Вам нужно изменить fetchDomainStatus так, чтобы он принимал параметр NSValue *, если вы сделали это так.

...