4 Stimmen

Leerer schwarzer Bildschirm beim Ausführen meiner iPad App

Ich bin mit meiner iPad-App auf eine Art Hindernis gestoßen. Ich habe offenbar einige unwiederbringliche Änderung an meinem Code vor kurzem und jetzt wird es nur mit einem schwarzen Bildschirm starten. Es zeigt die LoadingImage für einen Sekundenbruchteil und geht direkt auf schwarz.

In dem Bemühen, die Art des Problems, nach dem ich suche, zu straffen, hätte ich gerne einen Rat, wo ich mit der Suche beginnen sollte? Ich habe bisher mein Bestes getan, um alles, was ich mir vorstellen kann, zu überprüfen und wieder zu überprüfen, so dass ich bereit bin, die Suche neu zu beginnen, mit etwas Anleitung. Genauer gesagt, was sind einige der häufigsten Gründe dafür, dass Ihr Code nur zu einem schwarzen Bildschirm führt, ohne dass überhaupt ein Code ausgeführt wird. Wäre es ein InterfaceBuilder Problem, ein Xcode .h Problem, ein .m Problem mit meinen Methoden oder was? Ich habe Art von versehentlich das Problem ein paar Mal in der Vergangenheit gelöst, aber bin kämpfen, um die Quelle dieses Mal zu finden. Ich habe NSLog-Aufrufe in meinem Code hinzugefügt, um zu helfen, das Problem einzugrenzen (in jeder .m-Datei tatsächlich) und keiner von ihnen in das Protokoll überhaupt drucken.

Fakten:

  • Ich verwende das neueste Xcode und iOS SDK (für iPad, 3.2).
  • Es funktioniert sowohl im Simulator als auch auf meinem echten iPad.
  • Mein iPad ist nicht, und war es auch nie Jailbroken gewesen.
  • Meine Anwendung ist eigentlich sehr einfach, es ist nur eine einzige geteilte Ansicht mit einer Detailansicht und einer benutzerdefinierten Wurzelansicht, die eine Tabelle in veränderter Größe enthält.

Jede Hilfe, die mir jemand geben kann, würde mir eine Menge Jammern, Trübsal und Weinen ersparen. heh

Merci.

Zusätzlich angeforderter Code:
viewDidLoad aus 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 aus 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 Auszug

@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;
}

6voto

iwasrobbed Punkte 45760
  1. Erhalten Sie irgendwelche Fehlermeldungen auf dem Run Konsole?
  2. Haben Sie eine Ansicht in Interface Builder eingebunden? Oder versuchen Sie, eine nicht existierende XIB-Datei zu laden?
  3. Haben Sie die main nib file base name Schlüssel, der in der info.plist Datei?
  4. Was ist in Ihrem applicationDidFinishLaunching y viewDidLoad Methoden?
  5. Haben Sie irgendwelche Verweise auf etwas in Interface Builder gelöscht?
  6. Haben Sie kürzlich neue Ressourcen hinzugefügt, die beschädigt sein könnten?

Bitte aktualisieren Sie Ihre Frage, wenn möglich mit Code

Aktualisierung aufgrund von Kommentaren: Wie fügen Sie ein Fenster hinzu, wenn Sie nicht über eine applicationDidFinishLaunching Methode?

In der App-Delegate-.m-Datei sollten Sie etwas Ähnliches finden:

@synthesize window;
@synthesize viewController;

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

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

}

Wenn dies nicht der Fall ist, wird kein Fenster hinzugefügt, und Sie erhalten einen schwarzen Bildschirm.

1voto

William Niu Punkte 15692

Ich hatte das gleiche Problem. TechZen hatte Recht, dass es daran liegt, dass das Hauptfenster der Schreibfeder nicht geladen ist. Der 3. Vorschlag von iWasRobbed war also der beste Hinweis.

Das Problem war, dass meine App sowohl für das iPhone als auch für das iPad entwickelt wurde, so dass in der Info.plist hatte ich NSMainNibFile~iphone y NSMainNibFile~ipad , die vor iSO 3.2 nicht erkannt werden. Was ich tun musste, war, einen weiteren Eintrag für Kompatibilitätszwecke hinzuzufügen: NSMainNibFile .

Vielen Dank für die Hinweise, Leute! Viel Spaß beim Codieren!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X