У меня есть специальное приложение для iPhone, которое никак не зависит от UIKit (оно не связано с UIKit).Это означает, что я не использую UIApplication и, следовательно, не вызываю UIApplicationMain .
. Проблема в том, что при создании таймера он никогда не срабатывает.Таймер создается следующим образом:
[NSTimer timerWithTimeInterval:10 target:self selector:@selector(updateTime) userInfo:nil repeats:TRUE];
Я подозреваю, что проблема может быть связана с циклом выполнения, так как после того, как я закончу базовую инициализацию в " main () ", я делаю это:
NSLog(@"Starting application ...");
applicationInstance = [MyApp alloc];
[applicationInstance setMainLayer:mainLayer];
[NSThread detachNewThreadSelector:@selector(runApplication) toTarget:applicationInstance withObject:nil];
CFRunLoopRun();
Я перепроектировал UIKit и заметил, что UIApplication делает гораздо больше, чем регистрация системных событий и т. Д. NSTimer может полагаться на одну из этих вещей.Еще я заметил, что в делегате UIApplication поток такой же, как в main ().
Как мне заставить NSTimer работать правильно?Если это связано с циклом выполнения, может кто-то указать на ошибку?« CFRunLoopRun () » используется для отключения основного потока, чтобы остальная часть приложения могла работать.Я не думаю, что это правильно.
Редактировать: Я думаю, что цикл запуска должен быть настроен.Как-то ...