Все было хорошо, до вчерашнего дня, когда мое приложение начало вести себя странно.Он работает нормально на симуляторе, но на iPhone4 он выполняет еще один цикл даже после остановки.Вот мой инициализатор, который создает новый таймер CADisplayLink или возобновляет существующий:
-(void)initializeTimer{
if (self.theTimer == nil) {
self.theTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(gameLoop)];
self.theTimer.frameInterval = 2;
[self.theTimer addToRunLoop: [NSRunLoop currentRunLoop] forMode: NSDefaultRunLoopMode];
} else {
self.theTimer.paused = NO;
}
}
Мне нужно часто останавливать и возобновлять таймер, поэтому я останавливаю таймер с паузойсвойство:
self.theTimer.paused = YES;
Затем я вызываю инициализатор, который возобновляет его (self.theTimer.pause = NO).Как уже было сказано, он выполняет еще один вызов метода селектора.Очень странно, у меня это приложение работало без проблем CADisplayLink больше месяца.Я не делал никаких обновлений для iPhone в последнее время.Кроме того, системные звуки перестали воспроизводиться одновременно, но объекты AVAudioPlayer по-прежнему работают.Как я уже говорил, таймер и звуки отлично работают на симуляторе, но я хочу выяснить, что вызывает проблемы на iPhone.Все вещи сделаны с чистым UIKit.Есть идеи с чего начать?