Я вижу утечку памяти в следующем коде после того, как я деиницировал сцену:
didMove сцены:
run(SKAction.repeatForever(SKAction.sequence([SKAction.wait(forDuration: 1.5), SKAction.run { [unowned self] in self.generateWave() }])))
Функция:
func generateWave()
{
let bgImage = self.childNode(withName: "bgImage") as! SKSpriteNode
let waveNode = SKSpriteNode(texture: atlasSplashScreen.textureNamed("SplashScreenWave"))
waveNode.position = CGPoint(x: -207, y: -60.8)
bgImage.addChild(waveNode)
let waveMove = SKAction.moveTo(x: self.frame.width / 2, duration: 6)
waveNode.run(waveMove)
{
waveNode.removeFromParent()
}
}
Изменение последней строки для исправления этой утечки:
waveNode.run(SKAction.sequence([waveMove, SKAction.removeFromParent()]))
Есть идеи, что я здесь не так делаю?Я думал, что правильно справляюсь со слабыми / неподготовленными вещами, но теперь я не уверен.Я не понимаю, почему помещение строки removeFromParent в блок завершения может привести к утечке.
Заранее спасибо.
Mike