在GameplayKit中使用GKStateMachine泄漏

时间:2017-01-10 19:08:14

标签: memory-leaks sprite-kit swift3 xcode8 gameplay-kit

我在使用GKStateMachine时遇到了泄漏问题。 我的应用程序是一个非常直接的代码来测试问题。这是GameScene:

import SpriteKit
import GameplayKit

class GameScene: SKScene {

   lazy var gameState:GKStateMachine = GKStateMachine(states: [Introduction(scene: self)])

   override func didMove(to view: SKView) {

      self.gameState.enter(Introduction.self)
   }
} 

这是我的状态:

import SpriteKit
import GameplayKit

class Introduction: GKState {

   unowned let scene:GameScene

   init(scene:SKScene) {
      self.scene = scene as! GameScene
      super.init()
   }

   override func didEnter(from previousState: GKState?) {
      print("INSIDE THE Introduction STATE")
   }
}

问题是当我运行Leaks调试器时,我一进入状态就收到一个泄漏。有没有人 有建议吗?

1 个答案:

答案 0 :(得分:0)

您可以简化构造函数以避免类型转换。

init(scene: GameScene) {
  self.scene = scene
  super.init()
}