簡體   English   中英

在目標C中連續取消分配和分配是否昂貴?

[英]Is it expensive to continuously dealloc and alloc in Objective C?

我有一個iPhone應用程序,該應用程序具有4個選項菜單,並允許用戶在視圖控制器之間快速切換。 因此,我想使體驗更加流暢,每次用戶在視圖控制器之間切換時,都會立即釋放from視圖控制器,並分配給to 用戶很可能會進行很多切換。 有沒有比不斷地釋放和分配相同的視圖控制器更好的方法呢?

視圖控制器並不昂貴。 可以分配和釋放它們。 但是,視圖可能很昂貴。 當內存不足時,系統嘗試卸載當前不可見的視圖控制器的視圖。 您的應用應該始終意識到這一點。 在viewDidUnload中釋放昂貴的對象,即IBOutlets和可以重新創建的數據。

如果遇到性能問題,則應將所有4個視圖控制器都保留在內存中。 因此,視圖將更快地加載。 iOS負責卸載不可見的視圖(如果適用)。

如果是用戶在進行切換,則花費在dealloc和/或alloc上的時間是微不足道的,禁止進行任何非常耗時的操作,例如加載數十/數百個圖像等。

簡而言之,按需解決方案和緩存解決方案都將比其他解決方案具有一些微小的優勢。 您的用戶不會注意到其中的區別。

聽起來像使用標簽欄應用程序可能會更好一些?

如果您最關心內存,那么聽起來好像您將要進行大量的加載和卸載操作,這對於最終用戶來說將是一個較慢的體驗。

如果使用選項卡欄控制器,則如果需要內存,則會自動卸載未使用的選項卡中的視圖。 並在必要時再次加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM