返回Objective-C对象时的内存管理

时间:2010-07-08 02:54:43

标签: objective-c memory-management

在Objective-C中,如果我有一个方法来分配和初始化一个对象,然后返回它,我在哪里/如何发布它?

例如,假设我有一个创建对象的方法:

- (void)aMethod {
    UIView *aView = [self createObject];
}

- (UIView *)createObject {
    UIView *returnView = [[UIView alloc] initWithFrame:CGRectZero];
    return returnView;
}

我什么时候发布这个对象?或者我会自动发布它吗?

3 个答案:

答案 0 :(得分:8)

rules for memory management对此事很清楚。你应该阅读它们。非常简单,也是使用Apple框架编写Objective-C代码的基础。

答案 1 :(得分:2)

- (void)aMethod {
    UIView *aView = [self createObject];
}

- (UIView *)createObject {
    UIView *returnView = [[UIView alloc] initWithFrame:CGRectZero];
    [returnView autorelease];
    return returnView;
}

答案 2 :(得分:-6)

另请注意,iPhone上不存在垃圾收集,因此如果您正在为该环境进行开发,则无法自动释放。

至于何时应该释放该对象,简单的答案就是当你完成使用它之后和销毁你的应用程序之前。