Проблема заключается в том, что задержка зависит от базовой реализации NSTimer, которая основана на NSRunLoop, который создается к моменту завершения запуска приложения.
Из Руководства по программированию потоков :
"При выполнении селектора в потоке [a] целевой поток должен иметь активный цикл выполнения. Для создаваемых потоков это означает ожидание, пока ваш код явно не запустит цикл выполнения. Поскольку основной поток запускает свой собственный цикл выполнения однако вы можете начать выполнять вызовы в этом потоке , как только приложение вызовет applicationDidFinishLaunching: метод делегата приложения. Цикл выполнения обрабатывает все вызовы селектора выполнения в очереди каждый раз в цикле, вместо обработки один во время каждой итерации цикла. "
Итак, проверьте, не сработало ли applicationDidFinishLaunching :. Вы сказали, что только что запустили приложение. Могу поспорить, что запуск еще не завершен.
Если это проблема, вы можете исправить это несколькими способами. Самым простым для меня является вызов executeSelector: withObject: afterDelay: from applicationDidFinishLaunching.