是否有其他人在Xcode 4中遇到问题,其中viewDidLoad
被调用了两次?我在Xcode 3.2和Xcode 4中运行了相同的项目,它只在Xcode 4中运行。
答案 0 :(得分:4)
在Apple Developer forums上研究之后,似乎在某些情况下Xcode 4会创建错误的Interface Builder NIB。结果是应用程序的rootViewController被加载了两次,这真的搞砸了。在Xcode 3中加载的相同项目不会出现问题。
在我的通用应用程序中,它只影响了iPad NIB。 iPhone很好。
我能够通过以下方式解决这个问题:
window.rootViewController = nil
)appDelegate.window.rootViewController = self
到目前为止,这似乎有了预期的效果。
答案 1 :(得分:0)
Xcode只是IDE - 它不应该与你的应用程序执行时发生的事情有任何关系。如果存在差异,您似乎更有可能为不同的iOS版本构建。
答案 2 :(得分:0)
您是否设置了视图控制器的视图?我有同样的问题,我意识到我没有设置视图属性。
- (void)viewDidLoad {
UIView *contentView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame];
//add some stuff to contentView here
self.view = contentView;
[contentView release];
}
答案 3 :(得分:0)
我有同样的问题。我解决了它。当您的应用内存确实收到内存警告时,就会发生这种情况。
给memoryDidReceiveWarning设一个断点。它被调用,并清除你的类对象内存。所以你的viewDidLoad Get被调用两次,因为那时它没有内存。