我最近开始以编程方式完全创建iOS应用程序(没有界面构建器),并且想知道在使用它之前将ViewController的视图声明为属性与在 loadview 功能。另外,如果我将它用作属性,我会将控制器dealloc中的视图解除分配吗?
即。此
- (void)loadView
{
_rootView = [[RootView alloc] initWithFrame:CGRectZero];
[self setView:self.rootView];
}
VS
- (void)loadView
{
RootView *rootView = [[RootView alloc] initWithFrame:CGRectZero];
[self setView:rootView];
[rootView release];
}
答案 0 :(得分:1)
view
已经 属于UIViewController
的属性。在您的示例中声明诸如rootView
之类的额外属性将毫无意义。所以你的第二个例子就是要走的路。 (我不确定你为什么要创建宽度和高度为零的视图,但这是另一个故事。)
在这种情况下,您的dealloc
实施(如果您提供)将调用[super dealloc]
以确保view
属性发送release
消息,但当然您应始终在[super dealloc]
的任何已覆盖实施中调用dealloc
。