[IPhone 08.30]01. 아이폰 어플리케이션 골격의 기본 5가지

2010. 8. 30. 12:05IPhone/Basic


1. main()함수 
 int main(int argc, char *argv[])
{
     NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
     int retVal=UIApplicationMain(argc,argv,nil,@"SampleAppDelegate");
     [pool release];
     return retVal;
}

  C프로그램은 처음 시작되면 main문을 시작으로 시작되게 된다.
 IPhone SDK의 언어 역시 오브젝티브C를 이용하여 작성되기때문에 이 또한 C의 영향을 받아 main문을 중심으로 실행된는데 main에서는 메모리 관리를 준비하며 애플리케이션의 이벤트 루프를 실행하게 된다.

2. applicationDidFinishLaunching 메소드
 -(void) applicationDidFinishLaunching:(UIApplication *)application{
         UIWindow *window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
         UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:[HelloController alloc]init]];
         [window addSubview:nav.view];
         [window makeKeyAndVisible];
}

  applicationDidFinishLaunching 메소드는 main에서 이벤트 루프를 실행하고 이때 그 다음 가장 먼저 호출하게 되는 부분이며 여기서 기본이 되는 윈도우를 생성하고 그 내용을 설정한 후 뷰(윈도우)가 애플리케이션에 기본 응답자가 되도록 설정한다. 

3. applicationWillTerminate 메소드
 -(void)applicationWillTerminate:(UIApplication *)applicatioin{
        //종료 직전 마지막 상태에서 필요한 일을 여기서 처리한다.
}

  applicationWillTerminate 메소드는 대부분 사용되는 메소드로써 아이폰의 스프링 보드(아이콘들이 줄줄줄 있고 홈키를 누르면 나타는 곳)로 컨트롤을 다시 넘기기 전에 애플리케이션이 어떤 상태든 완결되도록 처리할 수 있다.

4. LoadView 메소드 
 -(void)loadView
{
      contentView=[[UIImageView alloc]initWithFrame: [[UIScreen mainScreen] applicationFrame]];
      [contentView setImage:[UIImage imageNamed:@"helloworld.png"]];
      self.view=contentView;
      [contentView release];

//자동 회전과 리사이즈에 대한 지원을 제공
      contentView.autoresizesSubviews=YES;
      contentView.autoresizingMask=(UIViewAutorresizingFlexibleWidth|UIViewAutorseizingFlexibleHeight);
}

  LoadView  메소드 UIViewController를 사용해 애플리케이션을 구현할때 화면을 설정하고 하위뷰를 배치하는 필수 메소드가 loadView다. UITableViewController나 UITabBarController와 같은 특수한 하위 클래스를 상속할 때는 항상 [super loadView]를 호출하도록 한다.

5. shouldAutorotateToInterfaceOrientation 메소드
 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
      return YES;
}

  shouldAutorotateToInterfaceOrientation 메소드를 아이폰은 중력을 이용해 사용자의 편의를 줄 수있도록 중력센서를 가지고 있는데 이를 최대한 활용하기 위해 이 메소드를 사용해야한다. 만약 사용자가 아이폰을 가로로 나뒀을 경우 사용자가 넓은 시야로 볼수 있게 자동으로 가로로 돌려주고 새로로 나뒀을 경우 아래의 까지 긴내용을 쉽게 볼 수 있게 할 수있게 자동으로 돌려주는 기능으로 프로그래머가 should-autoratate메소드를 추가해야 된다.

위 5가지는 가장 골격이 되는 메소드이므로 항상 고려하여 만들어야한다.

'IPhone > Basic' 카테고리의 다른 글

[IPhone 09.01]06. About of View  (0) 2010.09.01
[IPhone 09.01]05. Touch  (0) 2010.09.01
[IPhone 09.01]04. TableView  (0) 2010.09.01
[IPhone 08.30]03. Objective - C의 특징  (0) 2010.08.30
[IPhone 08.30]02. 뷰 컨트롤러  (0) 2010.08.30