我最近开始完全以编程方式(没有界面生成器)创建iOS应用程序,并且想知道在使用ViewController的视图之前将其声明为属性,而不是简单地在loadview函数中进行创建是否有任何优势/差异。另外,如果我将视图用作属性,是否可以在控制器dealloc中取消分配视图?

即这个

- (void)loadView
{
    _rootView = [[RootView alloc] initWithFrame:CGRectZero];
    [self setView:self.rootView];
}




- (void)loadView
{
    RootView *rootView = [[RootView alloc] initWithFrame:CGRectZero];
    [self setView:rootView];
    [rootView release];
}

最佳答案

view已经是UIViewController的属性。在您的示例中声明一个额外的属性,例如rootView是没有意义的。因此,您的第二个例子就是要走的路。 (我不确定为什么要创建宽度和高度为零的视图,但这是另一回事了。)

在这种情况下,您的dealloc实现(如果提供的话)应调用[super dealloc]以确保向view属性发送一条release消息,但是,当然,在任何重写的实现中都应始终调用[super dealloc]dealloc

关于objective-c - 将 View 声明为属性v。临时创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8619994/

10-13 03:39