我正在视图控制器的loadView
中构建自己的视图。只是为了检查我是否可以发布如下所示的视图,或者还有什么我需要释放它?我知道框架会在需要释放一些内存时将其设置为nil。
- (void)loadView
{
self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[self.view release];
...
}
答案 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];