Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The app delegate must implement the window property if it wants to use a main storyboard file

I'm programmatically implement a list view controller. When I try to run the project, I got error:

2012-11-07 22:46:34.719 myTableViewControl[12021:c07] The app delegate must implement the         window property if it wants to use a main storyboard file.
2012-11-07 22:46:34.722 myTableViewControl[12021:c07] -[AppDelegate setWindow:]:     unrecognized selector sent to instance 0x7674e70
2012-11-07 22:46:34.723 myTableViewControl[12021:c07] *** Terminating app due to uncaught     exception 'NSInvalidArgumentException', reason: '-[AppDelegate setWindow:]: unrecognized     selector sent to instance 0x7674e70'
*** First throw call stack:
(0x1c8e012 0x10cbe7e 0x1d194bd 0x10df7ea 0x1c7dcf9 0x1c7d94e 0x1d60 0x107b7 0x10da7     0x11fab 0x23315 0x2424b 0x15cf8 0x1be9df9 0x1be9ad0 0x1c03bf5 0x1c03962 0x1c34bb6 0x1c33f44     0x1c33e1b 0x117da 0x1365c 0x1bd2 0x1b05)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

When I run the code, it hang on the main.m and shows that

"thread1: signal SIGABRT"

@autoreleasepool {return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

my code is as following: AppDelegate.h

//
//  AppDelegate.h
//  myTableViewControl
//
//  Created by Max on 12-11-5.
//  Copyright (c) 2012年 Max. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UINavigationController *navigationController;


@end

AppDelegate.m

//
//  AppDelegate.m
//  myTableViewControl
//
//  Created by Max on 12-11-5.
//  Copyright (c) 2012年 Max. All rights reserved.
//

    #import "AppDelegate.h"
    #import "firstViewController.h"


@implementation AppDelegate
@synthesize navigationController;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
{
    // create the base window
    UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    window.backgroundColor = [UIColor greenColor];
    self.window = window;

    [window release];

    // this is the home page from the user's perspective

    FirstViewController *fvc = [[FirstViewController alloc] init];

    UINavigationController *nc = [[UINavigationController alloc]initWithRootViewController:fvc];
    self.navigationController = nc;

    [fvc release];
    [nc release];

    // show them
    [self.window addSubview: nc.view];
    [self.window makeKeyAndVisible];

    return YES;
}

@end

FirstViewController is list view controller.

like image 651
max Avatar asked Nov 07 '12 15:11

max


People also ask

What is an app delegate?

So an app delegate is an object that the application object can use to do certain things like display the first window or view when the app starts up, handle outside notifications or save data when the app goes into the background.

What is didFinishLaunchingWithOptions?

application:didFinishLaunchingWithOptions: is part of the UIApplicationDelegate protocol, which is responsible with handling different changes over your application state. You can find out more about this method and about the app delegate protocol in the Apple documentation from here.


1 Answers

You are creating your window as a local variable and then trying to access it as if it were a property by using self.window. Make it a property.

like image 57
Phillip Mills Avatar answered Sep 24 '22 08:09

Phillip Mills