2016-09-10 6 views
1

私は異なるレベル、つまり異なるファイル(uiviewcontroller)(level1.swift、level2.swift ...)を持つシーンキットを使用してゲームをプログラミングしています。レベルを完了すると、それを再生できます。私が気づいたことは、ゲームを始めると約33MBのメモリを使います。今度は、レベル1のビューコントローラを再び表示する再生ボタンを押すと、ゲームは約60MBのメモリを使用します。再生時にレベル1をメモリから削除する方法はありますか?

質問は、私がもう一度それを提示すると何とかレベル1を削除する方法があるのですか?何かが好き: レベル1。 RemoveFromMemory Self.presentViewController(level1)?

答えて

0

メモリリークの症状のようです。シーンアセットへの複数の強力な参照を保持することで、この問題を引き起こす可能性があります。また、シーンの一部はお互いに強い参照を保持しているので、シーンを解放してもそれ自体を割り当て解除することはできません。

リーク音源を使用してゲームを実行します。インストゥルメンツのWWDCビデオが役立ちます。また、Xcode 8のメモリグラフデバッガは、あなたを助けます。

+0

これは5秒ごとに機能を実行するnstimerですか? – Pietari

+0

確かに、あなたがそれを無効にして、それを除外しないならば(SceneKitのNSTimerを使うことは、多くのbtwの意見では疑わしいデザインです)。 –

+0

どのように非アクティブ化しますか? – Pietari

関連する問題