2010-10-26 57 views
1

不太清楚我應該如何撰寫這一點,但釋放出的變量在此situtation:我應該釋放指向數組中項目的指針嗎?

NSString *string = @"HELLO WORLD"; 
NSArray *array = [NSArray arrayWithObject:string]; 
NSString *shouldIReleaseThis = [array objectAtIndex:0]; 
NSLog(@"%@", shouldIReleaseThis); 
//???? [shouldIReleaseThis release] ?????? 

//Do stuff with array 

我應該放開?爲什麼或者爲什麼不?

回答

4

你不擁有它(你沒有從new,alloc,retaincopy得到的參考),所以你不應該釋放它。請參閱Apple的memory management programming guide以獲取有關Cocoa內存管理規則的簡要但完整的概述。

+0

謝謝,這就是我正在尋找的。我讀過關於內存管理的內容,但不知怎的,「所有權」概念並沒有真正落入其中。 – rob 2010-10-26 02:12:51

+0

這是一個非常好的答案,適用於Cocoa中的所有變量釋放。 +1! – Chetan 2010-10-27 05:56:57

相關問題