1

我創建了一個navigationcontroller其中一個視圖控制器可能會被推多次..for例如,如果我們說,我們已經創建了一個視圖控制器與內存位置<x1234>和我在指數5索引一次加一次7 ...記憶呢?它會在一段時間後崩潰還是沒有問題,因爲我總是使用同一個對象?uinavigation控制器堆疊存儲管理

回答

0

您水溼添加一個視圖控制器幾次到一個堆棧。但是您可以創建多個實例(它們將具有不同的內存位置)並將它們推入導航堆棧。當然,如果你將創建> 1000個實例,那麼你的應用程序將崩潰。實際上,堆棧通常包含1-10個視圖控制器,並且所有工作都正常。

1

你不能推完全相同的對象到導航控制器堆棧more than once

重要在iOS版2.2和更高版本,如果在的viewController 參數的對象已經是導航堆棧上,這種方法拋出一個 異常。在iOS的早期版本中,該方法根本不做任何事情。

但是你可以把不同的場合的同一視圖控制器

的iOS將發送內存警告(在這裏你可以清除任何臨時存儲,您可以重新創建),並卸載不可見的任何意見。這意味着新視圖控制器的開銷相對較小,但不爲零。有超過這個限制,你會得到問題,但在實踐中,只要你正確地遵守內存管理規則,它是非常高的。當然高於製作可用UI所施加的限制。

+0

我想跟蹤堆棧雖然...如果不是這樣會發生控制器陣列? – 2012-02-16 11:36:58

+0

視圖控制器仍在堆棧中。它只是卸載與之相關的視圖。 – 2012-02-16 11:59:32