可能有人请告诉我内存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