Разрешен ли циклический вызов метода? - PullRequest
3 голосов
/ 10 октября 2011

Я вызываю метод из двух потоков и подумал, что я пытаюсь это сделать:

- (void)hideEnterButton
{
    if ([NSThread isMainThread])
    {
        enterButton.hidden = YES;
    }
    else
    {
        [self performSelectorOnMainThread:@selector(hideEnterButton) withObject:nil waitUntilDone:NO];
    }
}

Причина этого в том, что я понимаю, что вся обработка GUI должна выполняться в основном потоке.Будет ли это работать?

Ответы [ 3 ]

6 голосов
/ 10 октября 2011

Правильный термин рекурсивный , а не круговой, и да, это прекрасно.

3 голосов
/ 10 октября 2011

Да, это полностью верно.Я использовал этот точный метод раньше, и он работает очень хорошо.Единственная проблема в том, что любой код, использующий это, не может предположить, что кнопка скрыта после ее возврата, потому что он не ожидает завершения вызова.Если это не будет проблемой, используйте его как есть.Если это так, просто передайте YES вместо waitUntilDone:.

0 голосов
/ 10 октября 2011

Да. Это обычная модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...