2009-05-03 3 views
3

У меня есть несколько методов внутри моей точки зрения контроллера, которые загружаются для будущих действий, я называю их все в рамках одного метода, так например:Execute метода без задержки

- (void) updateSongInformation { 
    artistName.text = @"Testing"; 
    [self setupEmail]; 
    [self checkStatus]; 
} 

Если я вынимаю последние 2 строк, UILabel обновляется мгновенно. Есть ли способ запустить последние 2 метода в фоновом режиме, чтобы пользователь не задерживался?

ответ

8

performSelector: withObject: afterDelay: позволит вам нажимать вызовы на более поздний цикл runloop.

Если эти два вызова занимают значительное количество времени, это приведет к тому, что пользовательский интерфейс не будет реагировать чуть позже, хотя это может и не быть тем, что вы хотите. В этом случае вам нужно либо разбить операции на мелкие кусочки, и продолжать использовать performSelector: withObject: afterDelay: сделать следующий фрагмент или push the work onto a background thread.

+0

+1, лучше, чем таймер –

Смежные вопросы