【发布时间】:2015-01-31 07:06:41
【问题描述】:
我解释我的问题。
我刚刚制作了一个有 3 个视图的游戏。
- 带有播放按钮的游戏演示
- 游戏场景
- 游戏结束场景带有一个按钮可再次播放或返回演示场景。
我的问题是当两个场景之间有过渡时,活动内存会多出 30MB,每个场景过渡都会增加大约 30MB 的活动内存,并且永远不会减少。
如何修复它并释放内存?
谢谢大家
我的转换代码:
// Transition in presentationViewController file
func transition(sender:UIButton!)
{
println("transition")
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("GameViewController") as UIViewController
let window = UIApplication.sharedApplication().windows[0] as UIWindow
UIView.transitionFromView(
window.rootViewController!.view,
toView: secondViewController.view,
duration: 0.65,
options: .TransitionCrossDissolve,
completion: {
finished in window.rootViewController = secondViewController
})
}
// transition in GameScene file
func removeCountDownTimerView()
{
defaults.setInteger(balloonDestroyed, forKey: "score")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let gameOverScene: UIViewController = storyboard.instantiateViewControllerWithIdentifier("GameOverViewController") as UIViewController
let vc = self.view?.window?.rootViewController
vc?.presentViewController(gameOverScene, animated: true, completion: nil)
}
// transition in gameOverViewController file
func transition(sender:UIButton!)
{
println("play transition")
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("GameViewController") as UIViewController
let window = UIApplication.sharedApplication().windows[0] as UIWindow
UIView.transitionFromView(
window.rootViewController!.view,
toView: secondViewController.view,
duration: 0.65,
options: .TransitionCrossDissolve,
completion: {
finished in window.rootViewController = secondViewController
})
}
【问题讨论】:
标签: ios iphone memory swift sprite-kit