我在两个类之间传递了几个对象,比如从A到B的字符串,通过将字符串赋值给类B中的字符串属性,类型为retain。我是否必须在其dealloc方法中在B类中释放此字符串属性?
答案 0 :(得分:2)
如果属性类型为retain,则会将retain count增加1,并且要释放对象,则需要将其保留计数减少为0。 因此,如果您不释放它将导致内存泄漏。 感染这是保留属性的目的,它赋予该类实现属性的实例所有权。
答案 1 :(得分:1)
在您谈论dealloc
时,我将您的问题视为非ARC。
将字符串分配给B类中的字符串属性,即 类型保留。我是否必须在B类中发布此字符串属性
NO。
只有在保留,复制,分配时才需要发布。
此外,NSString应该分配不保留。
答案 2 :(得分:0)
是的,您需要释放保留的对象。在dealloc方法中:
- (void)dealloc
{
if (_yourString)
{
[_yourString release];
}
...
[super dealloc];
}