How is an AppDelegate instanciated?
- by pwny
I have an iOS application for which I want to create a ViewController programmatically.
I started an empty XCode project and modified the main method so it looks like this
int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, @"MyAppDelegate_iPad");
    [pool release];
    return retVal;
}
The app is a Universal Application, MyAppDelegate_iPad is a subclass of MyAppDelegate, which is a subclass of NSObject <UIApplicationDelegate>.
My problem is that the applicationDidFinishLoading method I've overridden in MyAppDelegate_iPad is never called (break point on the first line never hits).  The method looks like this
-(void) applicationDidFinishLaunching:(UIApplication *)application {
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    if(!window)
    {
        [self release];
        return;
    }
    window.backgroundColor = [UIColor whiteColor];
    rootController = [[MyViewController alloc] init];
    [window addSubview:rootController.view];
    [window makeKeyAndVisible];
    [window layoutSubviews];
}
I removed the line to link to a nib file from my plist file (I used to get the default "My Universal app on iPad" white screen) and now all that is displayed is a black screen.  applicationDidFinishLoading is still not being called.
Am I doing something wrong?  How should I properly create my AppDelegate instance?