可能有人請告訴我內存mgmt是需要的或stringWithFormat是autoreleased。我查看了Apple開發者網站上的NSString類參考文檔,但是如果返回字符串副本,或者'msg'僅指向自動釋放字符串的指針,則不會看到任何說明。NSString stringWithFormat和Memory Mgmt
NSString *msg; //pointer declared in interface
- (id) init
{
//some initialization code..
//is 'msg' receiving a copy or just a pointer assign
msg = [NSString stringWithFormat: @"%@ %@", FName, LName];
}
- (void) dealloc
{
//release some vars, properties here..
[msg release]; //is this correct ????
//Or should I be only doing: msg = nil;
[super dealloc];
}
如果你是Objective-C的新手,你應該使用ARC。 – bbum
@bbum我不同意某些觀點,我認爲如果他沒有ARC就開始他會更好地理解。除了CF對象還必須是CFRetain和CFReleased,所以最好從一開始就理解這個概念。 –
希望對CF * APIs的暴露應該是最小的。而在使用CF時,沒有合謀的autorelease poole,因此該模式與NS不同(並且更直截了當)。 – bbum