繁体   English   中英

Xcode 4 - viewDidLoad问题

[英]Xcode 4 - viewDidLoad issue

是否有其他人在Xcode 4中遇到问题,其中viewDidLoad被调用两次? 我在Xcode 3.2和Xcode 4中运行了相同的项目,它只在Xcode 4中运行。

Apple Developer论坛上研究之后,似乎在某些情况下Xcode 4会创建有问题的Interface Builder NIB。 结果是应用程序的rootViewController被加载了两次,这真的搞砸了。 在Xcode 3中加载的相同项目不会出现问题。

在我的通用应用程序中,它只影响了iPad NIB。 iPhone很好。

我能够通过以下方式解决这个问题:

  • 在Interface Builder中删除rootViewController连接(这会导致应用程序加载window.rootViewController = nil
  • 在主控制器的viewDidLoad(被加载两次的那个)中,然后我手动分配appDelegate.window.rootViewController = self

到目前为止,这似乎具有预期的效果。

我有同样的问题。 我解决了它。 它发生在您的应用内存确实收到内存警告时。

给memoryDidReceiveWarning设一个断点。 它被调用,并清除你的类对象内存。 所以你的viewDidLoad Get被调用两次,因为那时它没有内存。

Xcode只是IDE - 它应该与你的应用程序执行时发生的事情有任何关系。 如果存在差异,那么您似乎更有可能为不同的iOS版本构建。

您是否设置了视图控制器的视图? 我有同样的问题,我意识到我没有设置视图属性。

- (void)viewDidLoad {
    UIView *contentView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame];
    //add some stuff to contentView here
    self.view = contentView;
    [contentView release];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM