【发布时间】:2014-08-29 09:25:05
【问题描述】:
这种情况不会在您每次玩游戏时发生,可能每玩 5 次或 10 次就会发生一次。当游戏结束时,我从运行循环中删除了我的 CADisplayLink(我用它来为游戏区域设置动画,有点像 Flappy Bird 中的管道)。但是,在少数情况下,它会在那条线上崩溃。在该行旁边,它有:
Thread 1: EXC_BAD_ACCESS (code=1, address=0x10)
这是代码:
func endGame(r : String) {
UIView.animateWithDuration(0.4, delay: 0.2, options: .CurveLinear, animations: {
self.scoreLabel.alpha = 0
}, completion: {
(finished: Bool) in
self.scoreLabel.removeFromSuperview()
});
self.view.userInteractionEnabled = false
reason = r
println("Game Over!!!")
//Crashes on this line
blockUpdateDisplayLink.removeFromRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
shiftDisplayLink.removeFromRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
scoreTimer.invalidate()
UIView.animateWithDuration(0.0001, delay: 0.7, options: .CurveLinear, animations: {
}, completion: {
(finished: Bool) in
self.performSegueWithIdentifier("Game Over", sender: self)
});
}
如果我注释掉第一个 CADisplayLink 部分,它只会在第二个部分崩溃。
这是堆栈跟踪:
与上述相同的“线程 1”错误。
发生了什么事??
【问题讨论】:
标签: ios xcode swift breakpoints cadisplaylink