私のアプリケーションに大きな問題が発生しました。私のMainMenuシーンは、新しいMainMenuシーンに移行するときに割り当て解除されません。SKSceneがdeinitしない
//GameViewController
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = MainMenu(fileNamed: "MainMenu") {
scene.scaleMode = .aspectFill
view.presentScene(scene)
}
}
私は、次のコードを持つ新しいSKSceneを入力してボタンをタップ:
let transition = SKTransition.doorsOpenHorizontal(withDuration: 1.0)
let next_scene = LuckyScene(fileNamed: "LuckyScene")
next_scene?.scaleMode = scaleMode
view?.presentScene(next_scene!, transition: transition)
それは私のラッキーシーンをopenesが、それは主からdeinit関数を呼び出すことはありません。メニュー。
私がラッキーシーンから同じことをした場合、たとえばシーンを離れてメインメニューに戻ると、シーンが割り当て解除されて大きな問題を残してしまいます。
let transition = SKTransition.doorsOpenHorizontal(withDuration: 1.0)
let next_scene = MainMenu(fileNamed: "MainMenu")
next_scene?.scaleMode = scaleMode
view?.presentScene(next_scene!, transition: transition)
ユーザがLucky Sceneに入ってから離れると、新しいMainMenuシーンが作成されます。私は新しいものに移行したときに、私のMainMenuシーンの割り当てが解除取得されていないのはなぜ
?
あなたのMainMenuへの参照があります。そのプロパティを見つけて弱くする – Fluidity
https://developer.apple.com/ライブラリ/コンテンツ/ドキュメント/ Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html – Fluidity