почему этот код приложения работает - PullRequest
0 голосов
/ 21 февраля 2011

Просто начинаю с разработки для iPhone.

Я не уверен, почему этот код работает. Я создал новый контроллер пользовательского интерфейса, затем добавил его детали в файл делегата приложения * .h и файл * .m, а также подключил их в IB. Когда я его запускаю, все работает так, что я действительно вижу свой новый вид из контроллера, который я добавил ...

Однако я вижу в методе didFinishLaunchingWithOptions в делегате приложения, который я фактически никогда не создавал свой контроллер? (то есть, выделил это / создал объект).

Как все получается на самом деле?

(A) * .m

#import "windowsBasedAppDelegate.h"
#import "gregsController.h"

@implementation windowsBasedAppDelegate

@synthesize window;
@synthesize viewController;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

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

    [self.window makeKeyAndVisible];

    return YES;
}

(В) * .ч

#import <UIKit/UIKit.h>
@class gregsController;

@interface windowsBasedAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    gregsController *viewController;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet gregsController *viewController;

@end

спасибо

1 Ответ

1 голос
/ 21 февраля 2011

Если вы создали объект в конструкторе интерфейсов и подключили розетку, то файл пера фактически создает для вас объект, используя initWithCoder:

...