对财产的转让会导致保留吗?

时间:2011-07-25 23:27:11

标签: objective-c cocoa memory-management properties

一个非常基本的问题,当我有类似的东西时:

 TTStyledText * text = [TTStyledText textFromXHTML:message.message lineBreaks:YES URLs:NO];
 text.width = self.frame.size.width - 60;
 text.font = [UIFont fontWithName:@"ArialMT" size:17.0];
 _main_title.text = text;

当我将text分配给_main_title.text时,是否意味着_main_title.text保留text

2 个答案:

答案 0 :(得分:6)

实际上,这意味着您不应该关心_main_title.text是否保留text

这完全是setter方法的实现细节。它可能会复制文本。它可能会在内部做些坏事。 你不应该知道。

您只需要担心代码中的内存管理,并且在该代码中,您的内存管理是正确的。

最后,如果您希望text能够超越该特定范围的结束,那么您应该保留它(并稍后发布)。

答案 1 :(得分:4)

这取决于。如果text是属于retain类的_main_title属性,或者_main_title的类实现了保留其参数的setText:方法,那么是。