Microsoft PowerPoint - 4-UI 애플리케이션



Similar documents
2ndWeek_Introduction to iPhone OS.key

iOS4_13

슬라이드 1

05-06( )_¾ÆÀÌÆù_ÃÖÁ¾

Microsoft PowerPoint - 2-Objective-C 기초


캐빈의iOS프로그램팁01

Tad_가이드라인

(Xcode4.2 의 Choose a template for your new project 화면 ) 2) 라이브러리패널이조금바뀌었습니다. Stepper, Gesture Recognizer 가추가되었습니다. 외형이조금바뀌었지만, 책의내용은그대로사용할수있으므로문제없습니다.

자바 웹 프로그래밍

Dialog Box 실행파일을 Web에 포함시키는 방법

시편강설-경건회(2011년)-68편.hwp

정 관

<C1D6BFE4BDC7C7D0C0DA5FC6EDC1FDBFCF28B4DCB5B5292E687770>

untitled

IAP-Guide

¾Èµ¿±³È¸º¸ÃÖÁ¾

#³óÃÌ°æÁ¦ 64È£-Ä®¶ó¸é

¾Ë±â½¬¿îÀ±¸®°æ¿µc03ÖÁ¾š

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

Sena Technologies, Inc. HelloDevice Super 1.1.0

호랑이 턱걸이 바위

( )부록

BMP 파일 처리

01-OOPConcepts(2).PDF

MPLAB C18 C

Interstage5 SOAP서비스 설정 가이드

Something that can be seen, touched or otherwise sensed

매력적인 맥/iOS 개발 환경 그림 A-1 변경 사항 확인창 Validate Setting... 항목을 고르면 된다. 프로젝트 편집기를 선택했을 때 화면 아 래쪽에 있는 동일한 Validate Settings... 버튼을 클릭해도 된다. 이슈 내비게이터 목록에서 변경할

rmi_박준용_final.PDF

1.기본현황 연 혁 m 본면은 신라시대 ~고려시대 상주목에 속한 장천부곡 지역 m 한말에 이르러 장천면(76개 리동),외동면(18개 리동)으로 관할 m 행정구역 개편으로 상주군 장천면과 외동면이 병합하여 상주군 낙동면 (17개 리,25개

강의10

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

자바 웹 프로그래밍

K&R2 Reference Manual 번역본


Spring Data JPA Many To Many 양방향 관계 예제

PowerPoint 프레젠테이션

untitled

untitled

IAEA

10X56_NWG_KOR.indd

PowerPoint 프레젠테이션

구로구민체육센터 여성전용 기구필라테스 강좌 신설 구로구시설관리공단은 신도림생활체육관에서 2014년도부터 시행하여 주민의 큰 호응을 얻고있는 기구필라 테스 강좌를 일자로 구로구민체육센터에 확대 시행하게 되었습니다. 구로구 관내 고객들의 니즈를 반영한 기

교육2 ? 그림

......

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law),

2011년 10월 초판 c 2011 Sony Corporation. All rights reserved. 서면 허가 없이 전체 또는 일부를 복제하는 것을 금합니다. 기능 및 규격은 통보 없이 변경될 수 있습니다. Sony와 Sony 로고는 Sony의 상표입니다. G L

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

DE1-SoC Board

<BBE7B8B3B4EBC7D0B0A8BBE7B9E9BCAD28C1F8C2A5C3D6C1BE E687770>

이명숙초고.hwp

분 후 가구수 현 행 조 후 가구수 가구수 비 장호원 진암5 468 부 발 무촌3 579 백 사 현방 증포1 448 증 포 갈산1 769 진암5 281 기존 자연마을 진암 코아루아파트 369세대 무촌3 271 기존 자연마을 무촌 효

(72) 발명자 서진교 경기 용인시 수지구 풍덕천2동 1167 진산마을 삼성5차아파트526동 1004호 조필제 경기 용인시 풍덕천동 유스빌 401호 - 2 -

untitled

Blog

PowerPoint Presentation

chap01_time_complexity.key

Assign an IP Address and Access the Video Stream - Installation Guide

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

C# Programming Guide - Types

찾아보기 Index 기호및숫자!( 논리부정 ) 연산자 31!=( 같지않음 ) 연산자 30 #define #define과전역변수 #import #include %( 나머지연산자 ) 63 ( 토큰참고 ) 159

눈오는 날의 단상

<38BFF920BFF8B0ED2DC8F1BFB5BEF6B8B620C6EDC1FDBABB2E687770>

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

>> 이없을수있다면서꺼린다고것이다. 그래서필자는맥플랫폼의선진적인개발환경과오픈소스정책이생산성에큰도움을주는게아닌가하고조심스럽게추측해본다. 그중심에바로 코코아 (Cocoa) 가있다. 코코아로가장많은프로젝트를수행하는애플에서코코아의개발퍼포먼스에대해어떻다는공식적인언급은없었지만지켜

목차 006/ 008/ 009/ 011/ 012/ 013/ 014/ Part 1_ 컴퓨터가 제대로 작동하지 않을 때 문제00_ 윈도우7 복구(초기화) 방법 안내 문제01_ 컴퓨터의 전원 버튼을 눌러도 아무 반응이 없어요. 문제02_ 전원을 누르면 팬(쿨러)이 돌아가는

final_thesis

DioPen 6.0 사용 설명서

Security Overview

PRO1_18E [읽기 전용]

목 차

PRO1_04E [읽기 전용]

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

B _01_M_Korea.indb

주택시장 동향 1) 주택 매매 동향 2) 주택 전세 동향 3) 규모별 아파트 가격지수 동향 4) 권역별 아파트 매매 전세시장 동향 토지시장 동향 1) 지가변동률 2) 토지거래 동향 강남권 재건축아파트 시장동향 15 준공업지역 부동산시장 동향

학교폭력표지

DR-M140 사용 설명서

(......).hwp

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

02 C h a p t e r Java

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

iOS의 MKMapView 정리하기

chap7.key

Microsoft PowerPoint - CoolMessenger_제안서_라이트_200508

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부


Orcad Capture 9.x

<C1A4C3A5B8DEB8F05FC1A C8A35FB0F8B0F8B5A5C0CCC5CD20B0B3B9E6B0FA20B0ADBFF8B5B52E687770>

MAX+plus II Getting Started - 무작정따라하기

¿À¸®ÄÞ40


블로그_별책부록

hlogin7

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

PRO1_14E [읽기 전용]

³»Áö¼öÁ¤

Transcription:

UIApplication 클래스 UIApplicationDelegate 프로토콜 순천향대학교 컴퓨터공학과 이 상 정 1 UIApplication 클래스 순천향대학교 컴퓨터공학과 이 상 정 2

UIApplication 클래스 개요 이 장에서는 UIApplication 클래스를 기본으로 하여 아이폰 프 로그램 동작 과정을 이해 인터페이스 빌더를 사용하지 않는 아이폰 템플릿인 Window-based Application 으로 UIApplication 클래스 아이폰 애플리케이션의 시작점 main.m 의 UIApplicationMain() 메서드에서 오브젝트 인스턴스 생성 UIApplicationDelegate 프로토콜을 사용하여 동작 제어 윈도우(UIWindow)를 초기화하고 디스플레이 뷰(UIView)를 윈도우에적재 애플리케이션의 라이프 사이클(life cycle) UIApplication에서 수신한 시스템 이벤트 처리 MainWindow.xib 파일에서 UIWindow, UIApplication, UIApplicationDelagate 연결 순천향대학교 컴퓨터공학과 이 상 정 3 Window-based Application 템플릿 Window-based d Application 템플릿으로 프로그래밍 작성 과정 1. 템플릿이 UIApplicationDelegate 자동 생성 2. 뷰(UIView, UIViewController)를 생성 3. 뷰에 그래픽 컨트롤러(오브젝트)를 추가 4. 오브젝트의 이벤트와 동작을 추가 5. UIApplicationDelegate 프로토콜의 시스템 이벤트 처리 동작 추가 6. 빌드하고 실행 순천향대학교 컴퓨터공학과 이 상 정 4

AddViewProject 예제 (1) Window-based Application 템플릿에서 뷰를 추가하는 예 뷰 컨트롤러 생성(xib, 클래스) 뷰의 속성을 변경 뷰를 적재하는 Delegate를 수정 1. New Project 창에서 Window-based d Application 선택하고 프로젝트 이름을 AddViewProject 로지정 2. Groups & Files Classes 폴더를 열고 UIApplicationDelegate 프로토콜을 따르는 클래스가 있는 AddViewProjectDelegate.h, elegate.h, AddViewProjectDelegate.m elegate.m 파일을 확인 순천향대학교 컴퓨터공학과 이 상 정 5 AddViewProject 예제 (2) 3. Resources 폴더를 선택하고 마우스 오른쪽 버튼 클릭 후 [Add]-[New File] 선택, User Interface 선택, Empty XIB 선택, Next 클릭하고 FirstViewController 로 xib 이름 지정 후 Finish 클릭 순천향대학교 컴퓨터공학과 이 상 정 6

AddViewProject 예제 (3) 4. Groups & Files 에서 Classes 클릭 후 메뉴에서 [File]- [New File] 선택하고, Cocoa Touch Class 템플릿 선택, UIViewController subclass 선택, Next 클릭 후 파일 이름으 로 FirstViewController.m 지정하고 Finish 클릭 (단, Also Create FisrtViewController.h 는 체크상태 유지) 순천향대학교 컴퓨터공학과 이 상 정 7 AddViewProject 예제 (4) 5. FirstViewController.xib 를 더블클릭하여 인터페이스 빌더 실행 6. 라이브러리 창에서 뷰를 선택하고, 뷰를 FirstViewController.xib의 도큐먼트 창으로 드래그 순천향대학교 컴퓨터공학과 이 상 정 8

AddViewProject 예제 (5) 7. 도큐먼트 창에서 File s Owner를 선택하고 인스펙터 창의 Identity 탭에서 Class Identity의 클래스를 FirstViewController로 선택 순천향대학교 컴퓨터공학과 이 상 정 9 AddViewProject 예제 (6) 8. 인스펙터 창의 Connections 탭에서 view outlet을 방금 생 성한 뷰에 연결 순천향대학교 컴퓨터공학과 이 상 정 10

AddViewProject 예제 (7) 9. 도큐먼트 창에 서뷰를선택하 고 인스펙터 창 의 속성 탭 (Attributes)에 서 View 부분의 Background 색 을클릭하여뷰 의색을변경 순천향대학교 컴퓨터공학과 이 상 정 11 AddViewProject 예제 (8) 10. FirstViewController.xib 를 저장하고 인터페이스 빌더를 종료 11. AddViewProjectDelegate.h 파일을 열고 FirstViewController.h를 import하고, FirstViewController 클래스를 참조하는 프로퍼티를 생성 #import <UIKit/UIKit.h> #import "FirstViewController.h"; @interface AddViewProjectAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; FirstViewController *first; @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) FirstViewController *first; @end 순천향대학교 컴퓨터공학과 이 상 정 12

AddViewProject 예제 (9) 12. AddViewProjectAppDelegate.m 파일을 열고 first 오브젝 트를 synthesize하고 DidFinishLaunching 메서드를 수정 #import "AddViewProjectAppDelegate.h" @implementation AddViewProjectAppDelegate @synthesize window; @synthesize first; - (void)applicationdidfinishlaunching:(uiapplication *)application { // (BOOL)application:(UIApplication *)application didfinishlaunchingwithoptions: // (NSDictionary *)launchoptions { first = [[FirstViewController alloc] initwithnibname:@"firstviewcontroller" bundle:nil]; [window addsubview: [first view]]; [window makekeyandvisible]; // return YES -(void)dealloc{ [window release]; [first release]; [super dealloc]; @end 순천향대학교 컴퓨터공학과 이 상 정 13 AddViewProject 예제 (6) 13. Build And Run 클릭하여 실행하고 색이 있는 뷰의 표시를 확인 순천향대학교 컴퓨터공학과 이 상 정 14

MainWindow.xib MainWindow.xib 기능 UIWindow를 생성(alloc), 초기화(init), 해제(dealloc) UIWindow, UIApplication, UIApplicationDelagate 연결 UIApplication이 MainWindow.xib를 적재 AddViewProjectAppDelegate 를 UIApplication 델리게이트(delegate)로 설정 델리게이트는 클래스의 처리과정을 분리하여 단순화 UIApplication은 이벤트 처리를 UIApplicationDelegate의 구현한 메서드를 참조하여 처리 순천향대학교 컴퓨터공학과 이 상 정 15 UIApplicationDelegate 프로토콜 순천향대학교 컴퓨터공학과 이 상 정 16

main.m UIApplicationMain 메서드 UIApplication 인스턴스 생성 UIApplication, UIApplicationDelegate 레퍼런스(포인터) 획득 UIApplication *myapplication = [UIApplication sharedapplication]; UIApplicationDelegate *mydelegate = [[UIApplication sharedapplication] ]delegate]; #import <UIKit/UIKit.h> int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retval = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retval; 순천향대학교 컴퓨터공학과 이 상 정 17 애플리케이션 라이프 사이클 아이폰 애플리케이션 실행 라이프 사이클(life cycle) UIKit 프레임워크를 기반으 로 애플리케이션을 실행하 고종료 UIApplicationMain() 함수에 서 애플리케이션 적재 이벤트 루프에서 이벤트를 수신하고, 사용자는 이벤트 를 처리하는 함수를 호출하 는 실행이 반복 순천향대학교 컴퓨터공학과 이 상 정 18

라이프 사이클 이벤트 (1) UIApplication이 라이프 사이클 이벤트 수신 애플리케이션 실행 동안의 주요 변화 시 이벤트 발생 이벤트가 발생하면 해당 메서드를 실행 처리(인터럽트) 라이프 사이클 이벤트를 처리하는 코드는 UIApplicationDelegate 프로토콜에 맞추어 작성 라이프 사이클 이벤트를 처리하는 메서드 정의 템플릿이 UIApplicationDelegate 프로토콜을 따르는 클래스 생성 AddViewProjectAppDelegate.h, AddViewProjectAppDelegate.m AddViewProjectAppDelegate 클래스는 UIApplicationDelegate 프로토 콜채택 @interface AddViewProjectAppDelegate: NSObject <UIApplicationDelegate> 순천향대학교 컴퓨터공학과 이 상 정 19 라이프 사이클 이벤트 (2) UIApplicationDelegate 이벤트 처리 메서드 application:didchangestatusbarframe: application:didchangestatusbarorientation: application:handleopenurl: application:willchangestatusbarframe: application:willchangestatusbarorientation: duration: applicationdidbecomeactive: applicationdidfinishlaunching: application:didfinishlaunchingwithoptions: 순천향대학교 컴퓨터공학과 이 상 정 20 메서드 형식 - (void) application: (UIApplication *) application didchangestatusbarframe: (CGRect) oldstatusbarframe - (void) application: (UIApplication *) application didchangestatusbarorientation: (UIInterfaceOrientation) oldstatusbarorientation - (void) application: (UIApplication *) application handleopenurl: (NSURL *) url - (void) application: (UIApplication *) application willchangestatusbarframe: (CGRect) newstatusbarframe - (void) application: (UIApplication *) application willchangestatusbarorientation: (UIInterfaceOrientation) newstatusbarorientation duration: (NSTimeInterval) duration - (void) applicationdidbecomeactive: (UIApplication *) application - (void) applicationdidfinishlaunching: (UIApplication *) application - (BOOL)application:(UIApplication *)application didfinishlaunchingwithoptions: (NSDictionary *)launchoptions {

라이프 사이클 이벤트 (3) UIApplicationDelegate 이벤트 처리 메서드 applicationdidreceivememorywarning: applicationsignificanttimechange: applicationwillresignactive: applicationwillterminate: 메서드 형식 - (void) applicationdidreceivememorywarning: (UIApplication *) application - (void) applicationsignificanttimechange: (UIApplication *) application - (void) applicationwillresignactive: (UIApplication *) application - (void) applicationwillterminate: (UIApplication *) application 순천향대학교 컴퓨터공학과 이 상 정 21 주요 라이프 사이클 이벤트 (1) 애플리케이션 시작 종료 이벤트 applicationdidfinishlaunching: 메서드 애플리케이션 시작 시 실행 처리 UIViewController와 UIWindow 초기화, UIView를 윈도우에 적재 애플리케이션 초기화 applicationwillterminate: 메서드 애플리케이션 종료 시 실행 처리 애플리케이션 상태 저장 및 정리(clean up) 순천향대학교 컴퓨터공학과 이 상 정 22

주요 라이프 사이클 이벤트 (2) 애플리케이션 비활성화 applicationwillresignactive: 메서드 애플리케이션을 비활성화 스크린 락 등 설정 시 애플리케이션 비활성화를 위해 실행 처리 applicationdidbecomeactive: 메서드 비활성화된 애플리케이션이 다시 활성화될 때 실행 처리 메모리 경고 applicationdidreceivememorywarning: 메서드 너무 많은 메모리 사용 시 경고를 위해 실행 처리 아이폰은 메모리 제한때문에 너무 많은 메모리를 사용하면 애플리케이션 을 강제 종료하는데, 종료 전에 보내는 이벤트에 응답하는 메서드 메모리를 확보를 위해 불필요한 메모리 해제 순천향대학교 컴퓨터공학과 이 상 정 23 인터럽트 처리 예 (1) 앞의 AddViewProjectAppDelegate 에 라이프 사이클 이벤트 처리 메서드 추가 applicationdidreceivememorywarning: applicationwillresignactive: applicationdidbecomeactive: 1. AddViewProjectAppDelegate의 implementation 부분 (AddViewProjectAppDelegate.m)에콘솔에출력하는라이 프 사이클 메서드를 추가 2. Build And Run 클릭하여 아이폰 시뮬레이터 실행 순천향대학교 컴퓨터공학과 이 상 정 24

인터럽트 처리 예 (2) #import "AddViewProjectAppDelegate.h @implementation AddViewProjectAppDelegate @synthesize window; @synthesize first; - (void)applicationdidfinishlaunching:(uiapplication *)application { first = [[FirstViewController alloc] initwithnibname:@"firstviewcontroller" bundle:nil]; [window addsubview: [first view]]; [window makekeyandvisible]; -(void)applicationwillresignactive:(uiapplication *) application { NSLog(@"hey I'm about to resign active status..."); -(void)applicationdidbecomeactive:(uiapplication *) application { NSLog(@"hey I'm active..."); -(void)applicationdidreceivememorywarning:(uiapplication *) application { NSLog(@"hey got a memory warning... "); 순천향대학교 컴퓨터공학과 이 상 정 25 인터럽트 처리 예 (3) 3. 아이폰 시뮬레이터 메뉴에서 [Hardware]-[Simulate [Simulate Memory Warning] 선택 4. 아이폰 시뮬레이터 메뉴에서 [Hardware]-[Lock] [Lock] 선택 후 아이폰 시뮬레이터를 unlock 하고 애플리케이션을 종료 5. 디버거 콘솔 창 출력을 확인 순천향대학교 컴퓨터공학과 이 상 정 26

[Hardware]-[Lock] [Lock] 선택 후 순천향대학교 컴퓨터공학과 이 상 정 27 Unlock 후 순천향대학교 컴퓨터공학과 이 상 정 28