簡體   English   中英

內存管理和viewDidLoad(iPhone,Objective-C)

[英]Memory Managment and viewDidLoad (iphone, objective-c)

我在viewDidLoad中分配了一個NSArray(首先可以這樣做,比如說它是很好的做法嗎?)但是我應該在哪里釋放它呢? 在ViewDidUnload,dealloc或didRecieveMemoryWarning嗎?

(我還應該向它發送消息以將其釋放,或將其設置為nil,還是清空數組或組合嗎?)

您應該將NSArray分配給self的保留屬性,並在viewDidLoad中(自動)釋放它。 然后在dealloc釋放它。 在此設置中,當調用viewDidLoad時,它將釋放“當前” NSArray(如果有)。

但是聽起來,如果可能的話,最好在其中一個init函數中分配NSArray。

您可以在viewDidLoad中進行分配,並且在取消分配每個項目時,它將在每個項目上調用release(添加它們時,調用將保留,因此請確保在需要時釋放)。

如果您不需要它,則應盡快將其釋放。 如果您要保留它(因為它是一個緩存),則可以在所有三種情況下都釋放它,但不要多次釋放它。

要釋放對象,請發送釋放消息:

[myObject release];

請參閱dealloc中的屬性:release,然后設置為nil? 或只是發布以獲取更多詳細信息。

不必清空數組。 當數組上的引用計數降至零時,它將對所有對象調用[對象釋放]。

暫無
暫無

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

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