본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA
Development/iPhone

[옛 글] SimpleTableView - SimpleTableViewAppDelegate

by 마즈다 2013. 7. 8.
반응형

최초 작성일 : 2010/03/27 09:00 



SimpleTableViewAppDelegate.h

//애플리케이션의 delegate 클래스 NSObject를 상속받고 있으며

//UIApplicationDelegate 프로토콜을 구현한다.

@interface SimpleTableViewAppDelegate : NSObject <UIApplicationDelegate> {

//인스턴스 변수 선언

UIWindow *window;


//계층적 데이터간에 이동을 표현할 수 있도록 해주는 뷰 컨트롤러 클래스

UINavigationController *navigationController;

}


//접근자와 변경자를 자동 생성하도록 해주는 @property 키워드 선언

@property (nonatomicretainIBOutlet UIWindow *window;

@property (nonatomicretain) UINavigationController *navigationController;


@end




SimpleTableViewAppDelegate.m



//필요한 헤더파일들 import

#import "SimpleTableViewAppDelegate.h"

#import "RootViewController.h"


@implementation SimpleTableViewAppDelegate


//헤더파일의 @property 키워드와 조합되어 접근자 및 변경자를 자동 생성시켜줌

@synthesize window;

@synthesize navigationController;


//UIApplicationDelegate프로토콜에 선언된 함수

//애플리케이션 시작되었음을 delegate에게 알려주는 함수. 인자는 시작된 애플리케이션 객체

- (void)applicationDidFinishLaunching:(UIApplication *)application {

/*

Create and configure the navigation and view controllers.

뷰 컨트롤러의 인스턴스 생성. alloc으로 생성되었으므로 후에 release 필요

*/


RootViewController *rootViewController =

[[RootViewController allocinitWithStyle:UITableViewStylePlain];

// Retrieve the array of known time zone names, 

// then sort the array and pass it to the root view controller.

//time zone이름 목록을 가져와 배열에 담는다.

NSArray *timeZones = [NSTimeZone knownTimeZoneNames];


//localizedCaseInsensitiveCompare : NSString 함수. 인자로 들어오는 문자열에

        //대/소문자 구분 안함, 지역화함, 비교대상임을  표시하여 리턴한다.

//@selector : 특정 함수 이름을 인자로 받아 다른 객체 내에서 그 함수가 실행되도록 한다.

//현재 코드에서는 NSString 클래스의 함수인 localizedCaseInsensitiveCompare를 @selector를 통해

//NSArray의 인스턴스인 timeZones의 함수 sortedArrayUsingSelector가 배열 값들을 정렬한는데

//사용할 수 있도록 해준다.

//즉, sortedArrayUsingSelector 함수는 localizedCaseInsensitiveCompare 함수를 이용하여

//배열 값들을 정렬한다.

//sortedArrayUsingSelector : NSArray 클래스의 함수. selector를 통헤 재공되는 특정 비교 방식을 사용하여

//정렬된 배열을 리턴하는 함수

rootViewController.timeZoneNames = [timeZonessortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

//네비게이션 뷰 컨트롤러 생성 역시 alloc을 통해 생성하였으므로 반드시 release해주어야 한다.

//initWithRootViewController : 새로 생성된 네비게이션 컨트롤러를 초기화 하여 반환한다. 

//인자는 네비게이션 스택의 가장 하부(가장 앞)에 존재하는 뷰 컨트롤러임.

UINavigationController *aNavigationController = [[UINavigationController alloc]initWithRootViewController:rootViewController];

self.navigationController = aNavigationController;

//alloc으로 생성한 인스턴스들 release

[aNavigationController release];

[rootViewController release];


// Configure and display the window.

//윈도우에 뷰를 추가하고 화면에 출력한다.

//addSubview : UIView클래스의 함수. receiver의 서브 뷰로 뷰를 추가하고 제일 위에 보여지도록 한다.

//makeKeyAndVisible : UIWindow클래스의 함수. 해당 윈도우를 가장 앞에서 사용자의 입력을 받는

        //key window로 만들고 이것을 화면에 출력한다.

[window addSubview:[navigationController view]];

[window makeKeyAndVisible];

}


//메모리 해제

- (void)dealloc {

[navigationController release];

    [window release];

    [super dealloc];

}

@end


반응형