3

我试图从内存管理的角度来理解这一点:在一个类中,我正在制作一个帮助方法,它将为我创建一个 NSDictionary 对象。

+(NSDictionary*) getTheDictionary{
    return [[[NSDictionary alloc] initWithObjectsAndKeys:
        @"value", @"key", nil] autorelease];
}

从另一个类,我使用该方法。

NSDictionary* theDictionary = [HelperClass getTheDictionary];

在 return 语句中只包含“autorelease”就足够了吗?我还需要在字典上自动释放吗?

4

1 回答 1

3

getTheDictionary返回一个自动释放的对象,这意味着该对象在调用方法中是 有效的,但不属于调用者。因此调用方法不能释放或自动释放该对象。

它将在当前自动释放池结束时释放,例如当程序控制返回到主事件循环时。

于 2013-08-13T20:06:46.063 回答