iOS-최초의 iPhone 애플리케이션
첫 번째 앱 만들기
이제 iOS 시뮬레이터에서 실행할 간단한 단일보기 애플리케이션 (빈 앱)을 만들 것입니다.
단계는 다음과 같습니다.
Step 1 − Xcode를 열고 선택 Create a new Xcode project.
Step 2 − 선택 Single View Application.
Step 3 − 제품 이름 (예 : 응용 프로그램 이름, 조직 이름, 회사 식별자)을 입력합니다.
Step 4 − Use Automatic Reference Counting범위를 벗어나면 할당 된 리소스를 자동으로 해제하기 위해 선택됩니다. 다음을 클릭하십시오.
Step 5 − 프로젝트 디렉토리를 선택하고 생성을 선택합니다.
Step 6 − 다음과 같은 화면이 표시됩니다 −
위 화면에서 지원되는 방향, 빌드 및 릴리스 설정을 선택할 수 있습니다. 지원하려는 장치 버전 인 필드 배포 대상이 있으며 현재 허용되는 최소 배포 대상인 4.3을 선택할 수 있습니다. 지금은 필수 사항이 아니며 응용 프로그램 실행에 중점을 두겠습니다.
Step 7 − 이제 실행 버튼 근처의 드롭 다운에서 iPhone 시뮬레이터를 선택하고 실행을 선택합니다.
Step 8− 그게 다입니다. 첫 번째 응용 프로그램을 성공적으로 실행했습니다. 다음과 같이 출력이 표시됩니다.
이제 인터페이스 빌더를 시작하기 위해 배경색을 변경해 보겠습니다. ViewController.xib를 선택하십시오. 오른쪽에서 배경 옵션을 선택하고 색상을 변경하고 실행하십시오.
위의 프로젝트에서 기본적으로 배포 대상은 iOS 6.0으로 설정되고 자동 레이아웃이 활성화됩니다. 애플리케이션이 iOS 4.3 이상에있는 디바이스에서 실행되도록하기 위해이 애플리케이션을 만들 때 배포 대상을 이미 수정했지만 자동 레이아웃을 비활성화하지 않았습니다.
자동 레이아웃을 비활성화하려면 각 펜촉, 즉 xib 파일의 파일 검사기에서 자동 레이아웃 확인란을 선택 취소해야합니다. Xcode 프로젝트 IDE의 다양한 섹션은 다음 그림에 나와 있습니다 (제공 : Apple Xcode 4 사용자 문서).
파일 검사기는 위와 같이 검사기 선택기 막대에서 찾을 수 있으며 자동 레이아웃을 선택 해제 할 수 있습니다. iOS 6 기기 만 타겟팅하려는 경우 자동 레이아웃을 사용할 수 있습니다. 또한 배포 대상을 iOS 6으로 올리면 통장과 같은 많은 새로운 기능을 사용할 수 있습니다. 지금은 배포 대상으로 iOS 4.3을 고수하겠습니다.
최초의 iOS 애플리케이션 코드
응용 프로그램에 대해 생성 된 5 개의 서로 다른 파일을 찾을 수 있습니다. 그들은 다음과 같이 나열됩니다-
- AppDelegate.h
- AppDelegate.m
- ViewController.h
- ViewController.m
- ViewController.xib
AppDelegate.h
// Header File that provides all UI related items.
#import <UIKit/UIKit.h>
// Forward declaration (Used when class will be defined /imported in future)
@class ViewController;
// Interface for Appdelegate
@interface AppDelegate : UIResponder <UIApplicationDelegate>
// Property window
@property (strong, nonatomic) UIWindow *window;
// Property Viewcontroller
@property (strong, nonatomic) ViewController *viewController;
//this marks end of interface
@end
Important items in code −
AppDelegate는 iOS 이벤트를 처리하는 UIResponder에서 상속됩니다.
시작 완료, 종료 예정 등과 같은 주요 애플리케이션 이벤트를 제공하는 UIApplicationDelegate의 위임 메서드를 구현합니다.
iOS 장치 화면의 다양한보기를 관리하고 조정하는 UIWindow 개체입니다. 다른 모든 뷰가로드되는 기본 뷰와 같습니다. 일반적으로 응용 프로그램에 대한 창은 하나만 있습니다.
UIViewController는 화면 흐름을 처리합니다.
AppDelegate.m
// Imports the class Appdelegate's interface
import "AppDelegate.h"
// Imports the viewcontroller to be loaded
#import "ViewController.h"
// Class definition starts here
@implementation AppDelegate
// Method to intimate us that the application launched successfully
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc]
initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
/* Use this method to release shared resources, save user data,
invalidate timers, and store enough application state information
to restore your application to its current state in case it is
terminated later. If your application supports background
execution, this method is called instead of
applicationWillTerminate: when the user quits.*/
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
/* Called as part of the transition from the background to the
inactive state. Here you can undo many of the changes made on
entering the background.*/
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
/* Restart any tasks that were paused (or not yet started) while
the application was inactive. If the application was previously in
the background, optionally refresh the user interface.*/
}
- (void)applicationWillTerminate:(UIApplication *)application {
/* Called when the application is about to terminate. Save data if
appropriate. See also applicationDidEnterBackground:. */
}
- (void)applicationWillTerminate:(UIApplication *)application {
/* Called when the application is about to terminate. Save data if appropriate.
See also applicationDidEnterBackground:. */
}
@end
Important items in code −
UIApplication 델리게이트는 여기에 정의됩니다. 위에 정의 된 모든 메서드는 UI 응용 프로그램 대리자이며 사용자 정의 메서드를 포함하지 않습니다.
UIWindow 객체는 할당 된 응용 프로그램을 보유하기 위해 할당됩니다.
UIViewController는 창의 초기 뷰 컨트롤러로 할당됩니다.
창을 표시하기 위해 makeKeyAndVisible 메서드가 호출됩니다.
ViewController.h
#import <UIKit/UIKit.h>
// Interface for class ViewController
@interface ViewController : UIViewController
@end
Important items in code −
ViewController 클래스는 iOS 애플리케이션에 대한 기본보기 관리 모델을 제공하는 UIViewController를 상속합니다.
ViewController.m
#import "ViewController.h"
// Category, an extension of ViewController class
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Important items in code −
여기에 구현 된 두 가지 메서드는 기본 클래스 UIViewController에 정의되어 있습니다.
뷰가로드 된 후 호출되는 viewDidLoad에서 초기 설정을 수행합니다.
메모리 경고 발생시 didReceiveMemoryWarning 메소드가 호출됩니다.