오브젝트C2010. 8. 11. 17:33
Hello iPhone - 1
책에 서술되어 있는 앞부분의 기초부분을 다 날려먹고

우선 눈으로 확인할 수 있는 예제가 필요했던 나는 바로 모든 프로그램의 기초인 헬로월드를 작성하기로 했다.

아주 기본적인 헬로월드는 플래시에서 텍스트필드(static)를 스테이지에 생성해서 그냥 'Hello World"라고 타이핑하는거와 별반 차이가 없다.

view의 역할을 해주는 .xib파일을 하나 생성하고 더블클릭하면 Interface Builder라는 녀석이 실행되면서 

여러개의 inspector들이 열린다. 그중 "View"라는 창에 "Library'라는 창에 있는 "Label" 컴포넌트를 끌어다 놓고 더블클릭해서

"Hello iPhone"이라고 타이핑하고 xCode로 와서 "build and go"를 클릭하면 iPhone Simulator라는 녀석이 실행되면서 

마치 iPhone에서 실행되는것처럼 모니터에 iPhone이 하나 나오고 어플이 실행되듯 Interface Builder의 View에서 만들어 놓은 화면이

보이게 된다. 

일단 이렇게만 하면 목표로했던 헬로월드는 완료!!

그런데 이렇게만 작성하면 mvc의 묘미를 느낄수가 없다. 그래서 다음 예제에 바로 도전했다.

2번째부터는 좀 복잡해진다. 중간중간 다른 일을 해야해서 집중도가 떨어졌지만 여차저차해서 빌드는 했다.

우선 새로운 프로젝트를 만드는데 첫번째 예제에서는 "View-Based Applicaion" 템플릿을 사용했는데, 

두번째에서는 "Window-Based Application" 템플릿을 이용한다.

생성된 프로젝트는 

MyHello //
 -Classes //
 -Otehr Sources
 -Resources //
 -Frameworks
 -products
Targets
Exeutables
Errors and Warnings
Find Results
Bookmarks
SCM
Project Symbols
Implementation Files
NIB Files //
이런식으로 구성된다.

Classes는 딱 보기에도 추가해야할 클래스들을 넣어야하는 패키지인거 같고,

Other Sources는 이미지 파일이나 기타 파일들을 넣는 패키지인거 같고,

Resourcese는 view역할을 하는 .xib파일과 info.plist파일이 저장돼있었고( 이외의 정보는 아직... ),

Frameworks는 템플릿을 정하면 필요한 framework들이 자동으로 추가되는 패키지라고 하고,

Products는 음.... 잘 모르겠다.

Targets, Executables, Errors and Warnings, Find Results, Bookmarks, SCM, Project Symbols, Implementation Files  << 모두 예제에서 언급되지 

않는 녀석들이다.

그냥 느낌상 뭐를 하는 녀석들이구나~하고 있을뿐....

암틈 예제에서 언급된 녀석들은 라벨 뒤에 '//'요게 붙은 녀석들이다.

프로젝트 생성후 window에서 활성화될 view를 추가해야한다. 그래서 View Controller 객체를 하나 만들어야 한다.

Cocoa Touch Classes 항목에 있는 UIViewController subclass를 선택해서 "MyViewController"라는 이름으로 생성해준다.

이때 옵션을 체크하면 .m 파일과 함께 .h파일도 함께 생성된다. 기본으로 설정되어 있다.

자~ 이제 컨트롤러는 하나 만들었으니 MyHelloAppDeligate.h 요 파일에 내가 추가한 컨트롤러 객체와 애플리케이션을 연결해준다.

@class MyViewController;

그리고 interface 멤버변수로 선언해준다.

MyViewController *myViewController;

--------------------------------------------------------------------------------------------------------------------------------
위의 2가지 과정은  as3 관점에서 본다면 
import a.b.c.MyViewController;
var myViewController: MyViewController;
뭐 이런 느낌이다.
--------------------------------------------------------------------------------------------------------------------------------

이제 MyHelloAppDeligate.h 파일에 선언되어 있으니 인스턴스를 생성해보자.

인스턴스의 생성은 MyHelloAppDeligate.m 요 파일에서 할 수 있다.

우선은 생성해놓은 MyViewController.h파일을 import 해준다.

#import "MyViewController.h";

그리고나서는 컨트롤러에 함수 접근자를 사용하겠다고 컴파일러에게 알려주는 구문을 적어준다.

@synthesize myViewController;

객체 생성은 애플리케이션이 초기화되면 이루어져야하므로

flex의 mxml에서 initApp/initialized 같은 느낌의 applicationDidFinishLaunching 함수에서 객체를 생성해준다.

함수내에서만 사용되는 aViewController를 생성해서 MyViewController객체를 받아서 멤버변수인 myViewController에 대입해주고

aViewController는 초기화해준다.

--------------------------------------------------------------------------------------------------------------------------------
왜 이런 방식으로 해야하는지는 내가 c/c++/objective-c에 무지하므로 잘 모르겠다.

초급자를 위한 책이라서 이렇게 한건가..... 음... 아직 잘 모르겠다.
--------------------------------------------------------------------------------------------------------------------------------

다음으로 myViewController의 view를 UIView타입인 controllerView로 받은 후 window의 addSubview의 파라미터로 넘긴다.

window에 view를 추가하면서 자기 역할을 다한 myViewController도 초기화해준다.

컨트롤러는 등록해서 생성까지 했으니 이제 view가 필요하다.

view는 .xib파일인데 NIB Files 패키지 내에 생성해준다.

.xib파일을 더블클릭하면 위에서 한번 언급된 Interface Builder가 실행된다.

이후부터는 이미지가 필요한데 맥에서 어떻게 캡쳐뜨는지 까먹었으므로 생략..........

포스팅하는 시간이 예제 한번 따라하는 시간보다 더 길어지다니... 난감하다. 일단 오늘은 여기서 종료...

이따 출근은 해야하니까 ㅡ,.ㅡ;;




출처 : http://blog.naver.com/PostView.nhn?blogId=3dasu&logNo=140089713852

'오브젝트C' 카테고리의 다른 글

Objective-C의 기초  (0) 2010.08.22
Object-C : Declared Properties 에 대한 깔끔한 정리  (0) 2010.08.12
Hello iPhone - 1  (0) 2010.08.11
The Objective-C 2.0 Programming Language  (0) 2010.06.24
Objective-C  (0) 2010.06.22
Objective-C의 기본 문법  (0) 2010.06.22
Posted by 오늘마감
TAG , , ,

댓글을 달아 주세요