一切都很好,直到昨天我的应用开始表现得很奇怪。它在模拟器上运行正常但在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)。如上所述,它对selector方法执行一次额外的调用。很奇怪,我有这个应用程序没有一个多月没有CADisplayLink问题。我最近没有对iPhone做任何更新。此外,系统声音在同一时刻停止播放,但AVAudioPlayer对象仍然有效。正如我所说,计时器和声音在模拟器上完美运行,但我想找出导致iPhone出现问题的原因。所有的东西都是用纯UIKit完成的。任何想法从哪里开始?
答案 0 :(得分:0)
非常奇怪。我刚从测试iPhone 4中删除了我的应用程序,编译并再次运行它,问题就消失了。我知道我没有发现问题,但经过大量的审判时间后我放弃了。但是,之后,我已将我的应用程序提交到应用商店并获得批准。希望这是某种调试问题而不是真正的问题。