【问题标题】:iOS initializing and returning a new object in a helper methodiOS 在辅助方法中初始化并返回一个新对象
【发布时间】:2013-08-15 14:29:43
【问题描述】:

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

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

我使用另一个类的方法。

NSDictionary* theDictionary = [HelperClass getTheDictionary];

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

【问题讨论】:

    标签: ios objective-c memory-management memory-leaks autorelease


    【解决方案1】:

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

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

    【讨论】:

    • getTheDictionary 也不真正符合标准命名约定。
    • 这只是为了这个问题而编造的。我本可以完成“createADictionary”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多