2011-02-17 57 views
0

如果我这样做目标C,约释放物体

address = [[NSString alloc] initWithData:addressData encoding:NSASCIIStringEncoding]; 

后来我知道,我需要做的像[地址释放]我用它做后质疑。 因为“黄金”增加的“地址”变量的引用计数,这样我需要做

[address release] 

但我不知道,我需要的,如果我这样做

NSData *addressData = [NSData dataWithBytes:buf length:address_len]; 

我释放在这个语句中没有看到任何“alloc”。所以在完成这个之后我仍然需要[addressData release]吗?

在此先感谢...

回答

1

解释不,你不知道。如果获得对象的方法是alloc,包含单词copy,或者如果您已编辑该对象,则只需释放(或自动释放)对象。

+1

不要忘记新... – 2011-02-17 10:42:32

0

您不需要在第二个示例中执行发布。一般规则是,如果您拨打分配,保留或复制,您将对发布负责。