假設有類型的字符串的NSString內存管理,目標C
NSString *string;
有陣列稱爲testArray,這是字符串數組對象
string=[testArray objectAtIndex:1];
我們需要給
[string release]
還是不是?
假設有類型的字符串的NSString內存管理,目標C
NSString *string;
有陣列稱爲testArray,這是字符串數組對象
string=[testArray objectAtIndex:1];
我們需要給
[string release]
還是不是?
不,你不需要做
[string release]
您必須release
對象只有當你爲它分配內存。請查看Memory Management Policy瞭解有關alloc和release的更多詳細信息。
無需發佈。你只需要發佈你已經分配的對象。
否..在這種情況下不是。
如果你從函數中得到一個字符串,它通常會有autorelease標誌,並會在稍後發佈。
你需要釋放它,如果你retain
它,如果你alloc
它或copy
它。
在這種情況下,你不必釋放的字符串。你只能釋放你擁有的對象(通過alloc/init,copy或retain創建)。查看Apple的內存管理文檔。在這種情況下,testArray擁有該字符串。因此,當不再需要時,它會釋放它
只有在您還調用了[字符串保留]的情況下。否則,內存由NSArray管理。如果你需要從數組中移除它,你可以調用[string retain],但仍然保留對它的引用。