我在 viewDidLoad 中分配了一个 NSArray (首先可以这样做,就像它是好的做法一样吗?)但是我在哪里释放它?在 ViewDidUnload、dealloc 或 didRecieveMemoryWarning 中?
(我也应该发送消息让它释放,或者将其设置为 nil,或者清空数组或组合?)
我在 viewDidLoad 中分配了一个 NSArray (首先可以这样做,就像它是好的做法一样吗?)但是我在哪里释放它?在 ViewDidUnload、dealloc 或 didRecieveMemoryWarning 中?
(我也应该发送消息让它释放,或者将其设置为 nil,或者清空数组或组合?)
您应该将 NSArray 分配给 的保留属性self
,并在 viewDidLoad 中(自动)释放它。然后在dealloc
. 在此设置中,当 viewDidLoad 被调用时,它会释放“当前”NSArray(如果有)。
但是,如果可能的话,听起来您最好将 NSArray 分配到其中一个init
函数中。
您可以在 viewDidLoad 中进行分配,当它被释放时它会在每个项目上调用 release(当您添加它们时它会调用 retain,因此请确保在需要时释放)。
如果你不需要它,你应该尽快释放它。如果您想保留它(因为它是一个缓存),那么您可以在所有三种情况下释放它,但不要多次释放它。
要释放对象,请发送释放消息:
[myObject release];
请参阅dealloc 中的属性:释放然后设置为零?或简单地发布以获取更多详细信息。
不必清空数组。当数组上的引用计数降至零时,它将调用其所有对象的 [object release]。