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
保留它或不保留它,视情况而定;如果您关心对象是生存还是死亡,请自己保留它(或将其分配给您自己的保留属性),并在不再需要时释放它(或将其分配给同一属性)。