2014-04-14 14 views
2

我有一個應用程序,其中有一個SpriteKit遊戲以及一個主菜單。點擊主頁按鈕後,CPU /內存不會像應有的那樣降低。我嘗試了一些東西,這裏的代碼可能是多餘的,但它還沒有爲我工作。SpriteKit - segue上的CPU /內存泄漏返回主屏幕

伏法每當主頁按鈕被觸動:

- (void)goToMainMenu { 
    [self performSegueWithIdentifier:@"mainmenu" sender:self]; 
    [self.spriteView removeFromSuperview]; 
    self.scene = nil; 
    [self.spriteView presentScene:nil]; 
    self.spriteView = nil; 
    self.view = nil; 
} 

當回到主菜單的遊戲中,CPU /內存只漲不跌。

回答

1

您不想從主屏幕再次回到應用程序並再次回到主屏幕。您將有兩個主屏幕實例。如果你再次遇到遊戲,那麼你也會有兩個例子。每當你跟隨循環系列的賽段時,你最終會得到更多的重複實例。

您應該使用「開卷」賽格瑞(見this answer例如開卷賽格瑞的),或使用popViewControllerAnimateddismissViewControllerAnimated取決於你是否推或呈現給遊戲視圖控制器。這就是你如何返回到主屏幕的原始實例,而不是創建一個新的實例。

+0

謝謝,但這並不能解決CPU /內存泄漏問題。 – Tillson

+0

@ user3477144如果您從'mainmenu'推送/呈現給您的遊戲場景,然後從遊戲場景中推送/呈現回'mainmenu',您肯定會泄漏(技術上而言,「棄用」內存)。但是,如果你修正了這個問題並且仍在泄漏,那麼你可能會遇到其他問題(強參考週期等)。請參閱[WWDC 2013視頻](https://developer.apple.com/videos/wwdc/2013/)「修復內存問題」,或者甚至更好[WWDC 2012 video](https://developer.apple.com)/videos/wwdc/2012 /)「iOS應用程序性能:內存」。 – Rob