최초 작성일 : 2010/03/27 09:00
//애플리케이션의 delegate 클래스 NSObject를 상속받고 있으며
//UIApplicationDelegate 프로토콜을 구현한다.
@interface SimpleTableViewAppDelegate : NSObject <UIApplicationDelegate> {
//인스턴스 변수 선언
UIWindow *window;
//계층적 데이터간에 이동을 표현할 수 있도록 해주는 뷰 컨트롤러 클래스
UINavigationController *navigationController;
}
//접근자와 변경자를 자동 생성하도록 해주는 @property 키워드 선언
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;
@end
//필요한 헤더파일들 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 alloc] initWithStyle: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
'Development > iPhone' 카테고리의 다른 글
[옛 글] SimpleTableView - RootViewController (0) | 2013.07.08 |
---|---|
[옛 글] [APIs] UINavigationController (0) | 2013.07.08 |
[옛 글] SimpleTableView - main.m (0) | 2013.07.05 |
[옛 글] SimpleTableView - 애플리케이션 스크린샷 (0) | 2013.07.05 |
[옛 글] TableViewSuite - Readme (0) | 2013.07.05 |