我有一個iPhone應用程序,有4個選項菜單,並允許用戶快速切換視圖控制器。所以我想讓體驗更順暢,每當用戶在視圖控制器之間切換時,視圖控制器立即釋放,並分配to
。用戶很可能會進行大量的切換。有沒有更好的方式來處理內存比保持釋放和重複分配相同的視圖控制器?在Objective C中連續釋放和分配是否昂貴?
0
A
回答
2
視圖控制器並不昂貴。可以分配和釋放它們。然而,這些觀點可能很昂貴。當內存不足時,系統會嘗試卸載當前不可見的視圖控制器的視圖。你的應用應該始終注意到這一點。在viewDidUnload中釋放昂貴的對象,即IBOutlets和可以重新創建的數據。
如果遇到性能問題,應該將所有4個視圖控制器放在內存中。所以視圖會更快加載。 iOS負責卸載不可見的視圖(適當時)。
1
如果它的用戶做切換,時間在dealloc中和/或頁頭花完全是微不足道的,禁止任何非常耗時操作,如裝載數十/數百幅圖像等
總之,無論一個按需和緩存的解決方案將比另一個有一些微小的優勢。儘管你的用戶不會注意到這些差異。
1
這聽起來像你可能用標籤欄應用程序更好?
如果內存是您最關心的問題,那麼聽起來您會加載和卸載很多,這對於最終用戶來說會是一種較慢的體驗。
如果您使用標籤欄控制器,那麼如果需要內存,未使用標籤中的視圖將被自動卸載。並在必要時再次加載。
相關問題
- 1. 在C#中的RedirectToAction是否昂貴?
- 2. pthread_self()是否昂貴?
- 3. 創建com.rits.cloning.Cloner是否昂貴?
- 4. 拆箱是否昂貴?
- 5. 如何昂貴或昂貴是用C++繼承
- 6. Objective-C中的自動釋放和「分配」屬性? (在iPhone上)
- 7. Objective-C對象的分配/釋放
- 8. 在Intranet中打開http連接是否昂貴?
- 9. 是「ConnectionMultiplexer.IsConnected」昂貴嗎?
- 10. Objective-C塊是否自動釋放?
- 11. 在C++中分配和釋放內存
- 12. 在C++中分配和釋放char *
- 13. 是否實例化XmlDocument昂貴?
- 14. 是否承諾空交易昂貴?
- 15. 釋放int在objective-c中
- 16. 在Objective-C中訂購和釋放NSArray
- 17. .Net(C#)中屬性的這種使用是否昂貴?
- 18. 在後臺運行昂貴的網格計算 - Objective-C
- 19. 在連續的內存塊中分配objective-c對象
- 20. 保持數據庫連接打開是否昂貴?
- 21. IE7和IE8中未定義的CSS類名是否昂貴?
- 22. enableBlending()和disableBlending()是多麼昂貴?
- 23. 您是否需要在Objective-C中釋放方法的參數?
- 24. 昂貴的StaticResource
- 25. 角度$廣播和$昂貴?
- 26. mmap是否連續分配堆內存?
- 27. 在C和C++中如何分配和釋放* array *內存?
- 28. 新[]是否連續分配內存?
- 29. 哪些對象做我分配/釋放在Objective-C
- 30. Objective-C的釋放
很快意味着推?因爲導航堆棧上的第一個視圖在被推送時不會被釋放 – CodaFi 2012-03-05 15:46:09
否它不使用導航控制器。只是一個自定義的CommonViewController,它可以在4個視圖控制器之間切換,並且每次釋放'from'並分配'to' .. – Snowman 2012-03-05 15:47:38
如果您擔心內存,爲什麼不使用導航控制器然後隱藏它?即使呈現模態視圖也會更有效率。 – CodaFi 2012-03-05 15:48:32