在UIViewController中释放视图的正确方法

时间:2010-07-29 06:40:51

标签: iphone uiviewcontroller

我正在视图控制器的loadView中构建自己的视图。只是为了检查我是否可以发布如下所示的视图,或者还有什么我需要释放它?我知道框架会在需要释放一些内存时将其设置为nil。

- (void)loadView
{
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
    [self.view release];
        ...
}

2 个答案:

答案 0 :(得分:4)

这看起来有点奇怪,我会这样做:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
self.view = view;
[view release];

如果你正在使用@property (retain),那么当它设置为nil时你不必担心释放它,例如self.view = nil;。但是,您应该在dealloc

中发布它

答案 1 :(得分:2)

UIViewController本身将为您发布UIViewController的视图属性。但是你是正确的,当你创建分配给UIViewController的视图时,你需要释放它,但是你尝试这样做的方式是错误的。要么做jtbandes建议,要么干脆:

self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)] autorelease];