小编JP *_*ino的帖子

我离开游戏后SpriteKit保留内存

所以我正在开发一个包含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)

memory memory-leaks memory-management sprite-kit swift

2
推荐指数
1
解决办法
387
查看次数

回滚到以前的提交以查找引入错误的时间

我有这个错误在最近10次提交中的我的iOS应用程序中显示。我尝试查看我使用差异工具所做的每个更改,但无法弄清楚。

现在,我想一个个地回滚到每个版本,以查找没有错误的最后一个版本,希望以此方式找出问题所在。

在确保我的最新提交安全的同时,回滚到以前版本的最佳方法是什么。

git github

2
推荐指数
1
解决办法
446
查看次数