8

我不明白函数的机制loadView:(这个函数在UIView中)。

我创建了一个项目如下:

  • 首先,我创建了一个 iPhone 的基于窗口的项目。
  • 然后,我创建了一个UIView子类
  • 接下来,我创建了一个UIViewController没有 xib 的子类。
  • 最后,在loadView:我在第三步创建的类的函数中,我将 UIView 对象(在我在第二步创建的类中)指定为对象的视图变量UIViewController(在第三步中)。

如果我省略了最后一步,将语句NSLog(@"test LoadView");放在 loadView: 函数中,那么在项目运行时,NSLog(@"test LoadView");会不断调用该语句,导致运行溢出。

请给我解释一下!谢谢!

4

1 回答 1

15

loadView:仅在视图属性为 时调用nil。以编程方式创建视图时使用它。default:创建一个没有子视图的 UIView 对象。对于前 -

- (void)loadView 
{ 
    UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; 
    [view setBackgroundColor:color]; 
    self.view = view; 
    [view release]; 
}

通过实现该loadView:方法,您可以连接到默认的内存管理行为。如果内存不足,视图控制器可能会收到该didReceiveMemoryWarning消息。默认实现检查视图是否正在使用中。如果它的视图不在视图层次结构中并且视图控制器实现了该loadView:方法,则它的视图被释放。稍后当需要视图时,loadView:再次调用该方法来创建视图。

不知道你为什么要使用loadView:,但你可以在viewDidLoad:

参考 -

  1. 为什么这个 iPhone 程序不调用 -loadView?
  2. 加载视图

希望这可以帮助。

于 2011-10-17T03:02:23.587 回答