所以我正在开发一个包含SpriteKit游戏的应用程序.我注意到的是,在我开始和关闭游戏后,内存不断增加,如下图所示:
我使用模态演示文稿从View Controller呈现游戏.所以问题是:有没有办法从内存中完全删除场景?
我点击视图控制器上的关闭按钮以关闭它.该scene.quitGame()
方法基本上释放所有节点,动作等.在一个理想的世界中,我甚至不需要做任何这样的事情,因为会有一个魔法命令SKScene
完全消除.
@IBAction func quit(_ sender: UIButton) {
scene.quitGame()
scene.removeFromParent()
self.removeFromParentViewController()
self.dismiss(animated: true, completion: nil)
scene = nil
}
Run Code Online (Sandbox Code Playgroud)
编辑:我使用以下代码从viewDidLoad呈现场景:
scene = GameScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = false
skView.showsNodeCount = false
skView.ignoresSiblingOrder = true
scene.scaleMode = .resizeFill
if let heroImage2 = heroImage2, let myImage = myImage, let monsterImage = monsterImage{
scene.addPicture(img: heroImage2, myImage: myImage,monsterImage: monsterImage, bigMonsterImage: bigMonsterImage!)
}
skView.presentScene(scene)
scene.viewController = self
Run Code Online (Sandbox Code Playgroud)
编辑2 - 我注释掉了对这种方法的调用,其中包括重复永久动作,泄漏似乎消失了
func createHerosAction(duration: Double = …
Run Code Online (Sandbox Code Playgroud) 我有这个错误在最近10次提交中的我的iOS应用程序中显示。我尝试查看我使用差异工具所做的每个更改,但无法弄清楚。
现在,我想一个个地回滚到每个版本,以查找没有错误的最后一个版本,希望以此方式找出问题所在。
在确保我的最新提交安全的同时,回滚到以前版本的最佳方法是什么。