将视图声明为属性v。临时创建

时间:2011-12-23 19:43:20

标签: objective-c ios memory-management

我最近开始以编程方式完全创建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];
}

1 个答案:

答案 0 :(得分:1)

view已经 属于UIViewController的属性。在您的示例中声明诸如rootView之类的额外属性将毫无意义。所以你的第二个例子就是要走的路。 (我不确定你为什么要创建宽度和高度为零的视图,但这是另一个故事。)

在这种情况下,您的dealloc实施(如果您提供)将调用[super dealloc]以确保view属性发送release消息,但当然您应始终[super dealloc]的任何已覆盖实施中调用dealloc