簡體   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