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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With