UIKit<-segue->SpriteKit間の遷移でメモリリーク
こんにちは
SwiftでiPhoneアプリを開発しています。
Segueを使ってUIKit用のViewControllerと
SpriteKit用のGameViewControllerとを行き来できるようにしたのですが
iPhoneシミュレーターで実行すると、デバッグナビゲーターのメモリが
画面を切り替えるごとに30Mずつ増加して頭を抱えています。
やりたいことは実現できたのに、悔しいです。
もしよければお知恵をお貸しください。
環境
OSX 10.9.5
Xcode.6.1.1
- New -> Project -> Gameを選択
- New -> File -> Swift File -> FirstViewController.swiftを作成
- ライブラリよりViewControllerをストリーボードにドラッグし、Custom ClassでFirstViewControllerを設定
- 矢印をFirstViewControllerにする
- storyboardからFirstViewControllerを選択し、GameViewControllerにsegue接続。segueのidentifierにtoGameとつける
- storyboard上のGameViewControllerを選択し、自らのExitに接続。identifierにbackとつける
各ファイルの抜粋は以下の通りです
class FirstViewController: UIViewController {
@IBAction func returnMenu(segue: UIStoryboardSegue) {
println("Welcome back!")
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
performSegueWithIdentifier("toGame", sender: nil)
}
}
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
scene.viewController = self
skView.presentScene(scene)
}
}
}
class GameScene: SKScene {
var viewController: UIViewController?
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
self.viewController?.performSegueWithIdentifier("back", sender: nil)
}
}
どうぞ是非よろしくお願いします。