在Objective-C中,如果我有一个方法来分配和初始化一个对象,然后返回它,我在哪里/如何发布它?
例如,假设我有一个创建对象的方法:- (void)aMethod {
UIView *aView = [self createObject];
}
- (UIView *)createObject {
UIView *returnView = [[UIView alloc] initWithFrame:CGRectZero];
return returnView;
}
我什么时候发布这个对象?或者我会自动发布它吗?
答案 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上不存在垃圾收集,因此如果您正在为该环境进行开发,则无法自动释放。
至于何时应该释放该对象,简单的答案就是当你完成使用它之后和销毁你的应用程序之前。