2011-11-24 136 views
1

假設有類型的字符串的NSString內存管理,目標C

 NSString *string; 

有陣列稱爲testArray,這是字符串數組對象

 string=[testArray objectAtIndex:1]; 

我們需要給

 [string release] 

還是不是?

回答

2

不,你不需要做

[string release] 

您必須release對象只有當你爲它分配內存。請查看Memory Management Policy瞭解有關alloc和release的更多詳細信息。

1

無需發佈。你只需要發佈你已經分配的對象。

2

在這種情況下,你不必釋放的字符串。你只能釋放你擁有的對象(通過alloc/init,copy或retain創建)。查看Apple的內存管理文檔。在這種情況下,testArray擁有該字符串。因此,當不再需要時,它會釋放它

1

只有在您還調用了[字符串保留]的情況下。否則,內存由NSArray管理。如果你需要從數組中移除它,你可以調用[string retain],但仍然保留對它的引用。