运行我的iPad App时出现黑屏

时间:2010-07-09 20:29:47

标签: iphone objective-c ipad

我的iPad应用程序遇到了一些障碍。我最近对我的代码做了一些不可恢复的更改,现在它只会用黑屏启动。它会瞬间显示LoadingImage,然后直接显示为黑色。

为了简化我正在寻找的问题,我想了解一下我应该从哪里开始寻找?到目前为止,我已经尽力检查并重新检查了我能想到的所有内容,所以我已经准备好在一些指导下开始搜索了。更具体地说,您的代码只会导致黑屏,而根本不运行任何代码的一些最常见的原因。它会是一个InterfaceBuilder问题,一个Xcode .h问题,我的方法有什么问题或什么?我过去曾几次意外地解决了这个问题,但这次我很难找到消息来源。我在我的代码中添加了NSLog调用以帮助缩小问题范围(实际上在每个.m文件中)并且根本没有打印到日志中。

事实:

  • 我正在使用最新的Xcode和iOS SDK(适用于iPad,3.2)。
  • 它在模拟器和我的实际iPad中都有。
  • 我的iPad不是,而且从来没有 Jailbroken。
  • 我的应用实际上非常简单,它只是一个带有详细视图的分割视图和一个自定义根视图,其中包含一个调整大小的表。

任何人都能提供的任何帮助都会让我失去很多抱怨,呻吟和哭泣。 HEH

感谢。

其他请求代码:
来自MasterView.m的 viewDidLoad

- (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];
}
来自DetailView.m的

viewDidLoad

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

2 个答案:

答案 0 :(得分:6)

  1. 您是否在Run控制台上收到任何错误消息?
  2. 您是否在界面构建器中连接了一个视图?或者尝试加载不存在的XIB文件?
  3. 您是否在main nib file base name文件中填充了info.plist密钥?
  4. 您的applicationDidFinishLaunchingviewDidLoad方法有哪些内容?
  5. 您是否删除了Interface Builder中对某些内容的引用?
  6. 您最近是否添加了可能已损坏的新资源?
  7. 如果可能,请使用代码

    更新您的问题

    根据评论进行更新:如果您没有applicationDidFinishLaunching方法,如何添加窗口?

    你应该在App Delegate .m文件中有这样的东西:

    @synthesize window;
    @synthesize viewController;
    
    - (void)applicationDidFinishLaunching:(UIApplication *)application {    
    
        // Override point for customization after app launch    
        [window addSubview:viewController.view];
        [window makeKeyAndVisible];
    
    }
    

    如果不在此处,则不会添加任何窗口,并且会出现黑屏。

答案 1 :(得分:1)

我遇到了同样的问题。 TechZen是对的,因为它没有加载主nib窗口。因此,iWasRobbed的第三个建议提供了最好的线索。

问题是,我的应用程序是针对iPhone和iPad制作的,所以在Info.plist中,我有NSMainNibFile~iphoneNSMainNibFile~ipad,这些在iSO 3.2之前无法识别。我需要做的是为了比较目的添加一个条目:NSMainNibFile

感谢大家的线索!快乐的编码!