2014-07-05 50 views
3

我正在設計一個遊戲與6視圖控制器。Dealloc不使用所有視圖控制器時使用展開segues

我使用模態賽格向前導航和展開賽格導航回。

遊戲流經視圖控制器是A - >乙 - 「ç - > d - >電子 - > F.

當嘗試從F到放鬆至A的dealloc僅稱爲上B和C這意味着每次玩遊戲時使用的內存都在不斷增加。

我最初認爲這個問題是由於某些東西被保留導致dealloc不能在視圖控制器D和E上調用。但是,如果我將unwind segue設置爲從F到D dealloc被F和E調用這似乎排除了這個問題。

我也有一個直接從視圖控制器A到F的路線。當我在這種情況下放鬆時,dealloc在F上被正確調用。

視圖控制器F和C在A上調用相同的展開動作。我認爲這不是原因,因爲我試圖將其更改爲對每個視圖控制器使用獨特的展開動作。

有什麼想法是什麼導致這個?我已經複製了下面使用的一些代碼。請讓我知道其他代碼(如果有的話)將有助於解決此問題。任何幫助將不勝感激。

開卷動作如下:

- (IBAction)unwindToMainMenu:(UIStoryboardSegue *)unwindSegue 
{} 

呼叫觸發從視圖控制器F開卷順着接下去答:

[self performSegueWithIdentifier:@"ReturnToMainMenu" sender:self]; 
+0

您是否嘗試過使用「泄漏」的儀器,它可以指出挽留週期,並給您一個歷史的所有保留/任何對象版本? –

+0

我試過泄漏儀器,但我對它不太熟悉。它指出我PrepareForSegue是問題的出處,但我不知道如何解釋它。我對iOS開發相當陌生:) – user1980555

+0

好吧,我們無法幫助您提供所提供的信息,所以我會建議觀看一些關於如何使用樂器的WWDC視頻,或者創建一個最小示例項目,以顯示你看到的問題,所以我們可以提供幫助。 –

回答

1

按照你的描述,這個問題應該是D。 可能D保留從其他人等等它不會被釋放當你從F直接去A不被釋放它繼續保留E保留F

所以,要專心D;)

+0

任何想法如何縮小問題的位置?我已經堅持了幾天。我幾乎刪除了所有的代碼,以試圖找出問題,但它仍然存在。 – user1980555

+0

什麼可能導致保留問題?我已經嘗試了分析工具並泄漏,並且沒有可見的泄漏。 – user1980555

+0

你使用外部庫來做些什麼嗎?我在某個星期前有類似的情況..最後問題出現在第三方庫...取代它,一切都很好。 –

相關問題