2010-08-19 54 views
0

我一直在写几个星期的目标C.然而,这个问题仍然困扰我很多。任何人都可以解释痛苦英语:何时保留一个对象?何时保留目标C?

谢谢

回答

1

这个问题已经被问过很多次。看看this article总结所有可能的情况。

基本上,如果您正在控制它,则保留该对象。假设你使用NSStringstringWithFormat得到了一个字符串。根据上面的文章,这种类型的方法将返回autorelease结果。如果你想长时间使用这个结果,比如接受的时间长度,那么你会想要retain它表示你将会控制这个结果。否则,它会自己release(提示:autorelease)认为没有人不再需要它。

如果您阅读了文章,您会看到在什么情况下该做什么(它非常具体和简洁)。知道了这一点后,你就可以根据是否需要比预期时间更长的物体来做出决定。

如果您使用属性,retain属性,那么这将自动照顾你。使用上面的示例:

my.property = [NSString stringWithFormat:@"%f", 0.2f]; 

结果将自动保留,因为您正在使用该属性。