我今天想知道一件事。
假设我MyViewController *myViewController
在根UIViewController
接口中声明了一个属性并实现它(综合、释放、卸载等)
然后我有一个功能loadMyView()
:
- (void)loadMyView {
if (!self.myViewController)
self.myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.view addSubview:self.myViewController.view];
}
和:
- (void)hideMyView {
[self.myViewController.view removeFromSuperview];
}
这些功能可以多次使用。
问题是,一旦我隐藏了视图,我就不再需要它以及它的内容和它们的当前状态。那么从内存中删除它允许我稍后再次分配(从而省略方法中的if
语句loadMyView
)的正确方法是什么?为什么?
由于其他原因,我需要一个指向该对象的强指针,这就是为什么我不创建临时对象然后释放它的原因。
在hideMyView
做我:
self.myViewController = nil;
[self.myViewController release];
或者 3. 初始化时自动释放内存:(self.myViewController = [[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]autorelease];
但是什么时候释放呢?)
对此还是比较陌生的。