在Obj C中的对象之间传递对象

时间:2013-02-21 08:41:16

标签: objective-c

我在两个类之间传递了几个对象,比如从A到B的字符串,通过将字符串赋值给类B中的字符串属性,类型为retain。我是否必须在其dealloc方法中在B类中释放此字符串属性?

3 个答案:

答案 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];
}