Mac App’s Core Objects
App Life Cycle
여느 C 프로그램과 같이1 OSX앱도 main
함수로부터 시작한다. 이 함수는 단순히 NSApplicationMain()
함수를 다시 호출한다. 대략 이렇게 생겼다.
#import <Cocoa/Cocoa.h>
int main(int argc, const char* argv[]) {
return NSApplicationMain(argc, (const char**) argv);
}
NSApplicationMain
함수는 앱을 초기화하고 실행할 준비를 한다. 초기화 과정의 일환으로 이 함수는 아래와 같은 작업을 한다.
- NSApplication 클래스 객체를 하나 만든다. 이 객체는
+sharedApplication
메소드로 얻을 수 있다. - Info.plist 파일을 읽어들여서 여기에 기록된
NSMainNibFile
로부터 nib 파일을 읽어들인다. 만약 스토리보드를 쓰고 있다면 기본 스토리보드를 읽어와서 객체들을 구성한다.UIApplicationMain
과는 달리 앱 델리게이트는 기본 Nib 파일에 반드시 포함되어 있어야 한다. - 애플리케이션 객체의 run 메소드를 호출한다. 이로써 론칭과정은 끝나고 앱의 이벤트 처리를 시작한다.