2010-07-09 239 views
4

我遇到了一種包含我的iPad應用程序的包版廣告。我顯然最近對代碼做了一些不可恢復的更改,現在只會以黑屏啓動。它顯示加載圖像一秒鐘,然後右轉黑色。運行我的iPad應用程序時出現黑屏空白

爲了簡化我正在尋找的問題,我想就我應該從哪裏開始尋找一些建議?到目前爲止,我已經盡全力檢查並重新檢查了我能想到的所有內容,因此我準備通過一些指導開始搜索。更具體地說,您的代碼只會導致黑屏,而根本不運行任何代碼的最常見原因是什麼?它會是一個InterfaceBuilder問題,一個Xcode .h問題,與我的方法有關的.m問題還是什麼?過去我幾次意外地解決了這個問題,但是這次我很難找到源頭。我在我的代碼中添加了NSLog調用來幫助縮小問題的範圍(實際上在每個.m文件中)並且它們都不打印到日誌中。

事實:

  • 我使用的是最新的Xcode和iOS SDK (適用於iPad,3.2)。
  • 它在模擬器和我的實際iPad中都有。
  • 我的iPad不是,也沒有 被越獄。
  • 我的應用程序其實很簡單,它只是一個具有詳細視圖的單獨分割視圖和一個具有調整大小的表格的自定義根視圖。

任何人都可以提供的幫助能夠真正爲我節省很多嗚嗚聲,嗡嗡聲和哭聲。 heh

謝謝。

附加請求的代碼:從MasterView.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSLog(@"Master: This self: %@", self); 

    self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0); 
    self.arrMenuOptions = [[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"MainMenuOptions" ofType:@"plist"]] retain]; 
} 

viewDidLoad中
viewDidLoad中從DetailView.m

- (void)viewDidLoad { 
    /// Initialize the preset things. 
    NSLog(@"Detail: This self: %@", self); 
    eleDetailToolbar.barStyle = UIBarStyleBlack; 

    eleWebView.opaque = NO; 
    eleWebView.backgroundColor = [UIColor clearColor]; 
    eleWebView.delegate = self; 
    [super viewDidLoad]; 
} 

AppDelegate中摘錄

@implementation AssistantAppDelegate 

@synthesize window, splitViewController;//, detailViewController, masterViewController; 
//rootViewController, eleMasterNavigationItem 

#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    NSLog(@"AppDelegate: This self: %@", self); 

    // Override point for customization after app launch  

    // Add the split view controller's view to the window and display. 
    [window addSubview:splitViewController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 
+0

在iPad 3上有同樣的問題,但屏幕顏色是灰色的。我發現的唯一的東西 - 重新啓動設備以進行正常工作 – fnc12 2014-07-15 04:12:58

回答

6
  1. 你的Run控制檯上得到任何錯誤訊息?
  2. 您是否在界面構建器中使用了一個視圖?或試圖加載一個不存在的XIB文件?
  3. 您是否在info.plist文件中填入main nib file base name密鑰?
  4. 您的applicationDidFinishLaunchingviewDidLoad方法中有什麼?
  5. 您是否刪除了對Interface Builder中某些內容的任何引用?
  6. 您是否最近添加了可能被損壞的新資源?

請更新您如果可能基於註釋代碼

更新問題:,如果你沒有一個applicationDidFinishLaunching方法你是如何增加一個窗口?

你應該在App委託.m文件是這樣的:

@synthesize window; 
@synthesize viewController; 

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 

} 

如果這是不是在這裏,被添加沒有窗戶,你會得到一個黑色的屏幕。

+0

更多問題: 您是否添加了要顯示在窗口中的視圖? 你讓窗戶可見嗎? applicationDidFinishLaunchingWithOptions方法是否實現? – 2010-07-09 21:07:39

+1

+1問題幾乎可以肯定的是,你不會在'applicationDidFinishLaunching:'中加載窗口,這會產生一個空白的黑色窗口,沒有其他明顯的問題,因爲應用程序認爲這是你想要的。空白的白色窗口意味着您沒有將視圖加載到窗口中。 – TechZen 2010-07-10 17:57:25

+0

感謝您回覆IWasRobbed,並對我的長時間響應延遲表示歉意。這是我現在知道的最好的: #1。沒有錯誤信息,沒有控制檯帖子,沒有警告,沒有構建錯誤,沒有任何排序,甚至當我添加代碼轉儲到控制檯時,它永遠不會被執行。 #2。是的,我在Interface Builder中鏈接了所有視圖。主窗口(MainWindow.xib),根視圖(MasterView.xib)和詳細信息視圖(DetailView.xib)# # #3。是。 #4.1 viewDidLoad在下面。我沒有applicationDidFinishLaunching,我不相信它曾經做過。 :( //續在下一評論 – Brak 2010-07-21 12:57:40

1

我有同樣的問題。 TechZen是正確的,因爲主要的筆尖窗口沒有加載。所以,iWasRobbed的第三個建議給了最好的線索。

問題是,我的應用程序是爲iPhone和iPad製作的,所以在Info.plist中,我有NSMainNibFile~iphoneNSMainNibFile~ipad,它們在iSO 3.2之前未被識別。我需要做的是添加一個用於兼容目的的條目:NSMainNibFile

感謝您的線索,每個人!快樂的編碼!