How to make first Instance
2008-10-07
조경민 bro@shinbiro.com neri.cafe24.com
MyDelegateApp가 어떻게 인스턴스 되는지 알아본다
Utility based로 프로젝트를 생성하면 appdelegate.h 소스엔 아래 처럼 되어 있다.
TestUtilDelegateApp.h
#import <UIKit/UIKit.h>
@class RootViewController;
@interface TestUtilAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
RootViewController *rootViewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
@end
그러나 소스 어디에도 어떻게 이 클래스가 생성되는지 적혀있지 않다.
하지만 실행하면 동작을 한다.
main.m에는 다음과 같이 되어 있다.
main.m
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
UIApplicationMain은 아래와 같으며 4번쨰 delegateClass는 Nil이므로 UIApplication클래스가 되고
3번째 principalClassName은 nil이므로 info.plist에 있는 값을 사용한다
info.plist에는 MainWindow.xib 정보가 들어 있다.
MainWindow.xib는 File's Owner는 UIApplication이고 delegate가 된 것이 Test Util Application이다 그리고 이 Test Util App의 Inspector를 보면
TestUtilAppDelegate 클래스로 설정되어 있다.
'KB > iphone/mac' 카테고리의 다른 글
[c850] ML 10.8.2 hackintosh (0) | 2014.01.25 |
---|---|
ipod touch상에서의 개발 환경 (0) | 2009.01.06 |
[iPhoneSDK] Using UIImageView (0) | 2008.10.08 |
[Obj-C] 정적 맴버 변수 (0) | 2008.10.07 |
[iPhoneSDK] Using TabBar (0) | 2008.10.07 |