Я работаю над игрой, которая по существу имеет два таймера для управления игровым процессом. Один таймер - это CADisplayLink, который выполняет вызов для перерисовки дисплея (с OpenGL) в каждом кадре, то есть чуть ниже 60 Гц. Другой таймер - это NSTimer, который обновляет игровую логику, которую я пытался запустить в диапазоне от 30 до 100 Гц.
Когда я запускаю программу в симуляторе iOS, она запаздывает и, кажется, пропускает кадры. Когда я использую Xcode для запуска программы на моем телефоне, она работает идеально, без каких-либо задержек или пропусков. Когда я запускаю программу с иконки на главном экране моего телефона, она запускается с задержкой.
Какая разница между загрузкой программы на моем телефоне и ее запуском из Xcode и запуском с самого телефона? Я понимаю, что он взаимодействует с отладчиком XCode, но как он может работать ЛУЧШЕ при подключении к XCode?
Наконец, кажется, что при запуске как игровой логики, так и графики с одного и того же CADisplayLink, наблюдается гораздо меньшая задержка. Могло ли иметь такую проблему и ссылка на отображение, и NSTimer?