Objective c 对财产的转让是否会导致保留?

Objective c 对财产的转让是否会导致保留?,objective-c,cocoa,memory-management,properties,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分配

这是一个非常基本的问题,当我有这样的问题时:

 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
分配给
\u main\u title.text
时,是否意味着
\u main\u title.text
保留
text

这取决于具体情况。如果
text
\u main\u title
所属的任何类的
retain
属性,或者
\u main\u title
的类实现了一个保留其参数的
setText:
方法,那么是的。

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

这将完全是setter方法的实现细节。它可能会复制文本。它可能会在内部做一些古怪的事情。你不需要知道

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


最后,如果您希望
text
在特定范围之外继续存在,那么您应该保留它(稍后再发布)。

您的意思是如果我定义了@property(nonatomic,retain)TTStyledTextLabel*main\u title;然后文本被保留?并且,为了强调,“您应该保留它”并不意味着“您应该希望
\u main\u title
保留它”。让
\u main\u title
保留它或不保留它,视情况而定;如果您关心对象是生存还是死亡,请自己保留它(或将其分配给您自己的保留属性),并在不再需要时释放它(或将其分配给同一属性)。