(iphone) запустить таймер из фонового потока? - PullRequest
0 голосов
/ 30 марта 2011

Я создаю таймер с [NSTimer scheduledTimerWithTimerInterval:target:selector:...] из фонового потока
Кажется, таймер, созданный из фонового потока, не вызывает селектор, заданный в качестве аргумента.

Есть ли что-то особенное, что мне нужно для запуска таймера из фонового потока?
Спасибо

  • РЕДАКТИРОВАТЬ

Вот последовательность

performSelectorInBackground: pushViewController

из последовательности инициализации viewController,

I alloc a timer with the above method.  

и селектор таймера не будет вызван.

1 Ответ

1 голос
/ 30 марта 2011

Вы должны делать что-то только с пользовательским интерфейсом - например, выдвигать контроллеры представления и изменять элементы пользовательского интерфейса - из основного потока. Если вы этого не сделаете, то, как вы видите, все сломается.

См. Раздел «Руководство по основам какао», озаглавленный «Безопасна ли нить Cocoa Frameworks?»: Там написано «Все объекты UIKit следует использовать только в главном потоке».

Оригинальный ответ

Ничего особенного не нужно. Селектор будет вызываться в потоке, из которого вы сделали вызов scheduleTimer.

...