반응형

~_~ 에구야, 이 새벽에 내가 잠안자고 뭐하는 건지...

아마도 오브젝티브C강좌가 C강좌 추월할 것만 같은 느낌이 두근두근

(제가 당장 필요한게 오브젝티브 C라... 음 >_< 뭐, 보는 사람도 없는데 내 맘대루 하지 ㅋㅋ)

 

C언어가 약간은 되어있다는 전제를 하고 할게요 ~_~

 

그럼 첫번째 예제부터 시작합시다 >_<

 

 

이거시 보이려나... 당연히 안 보이겠군..ㅡㅡ

(아악 >_< 그럼 나 이제부터 강의할때 윈도우에서 한번 치고 맥에서 한번치고 2번 쳐야하는거..!?)

 

#import<Foundation/Foundation.h>

 

int main(int argc, const char * argv[]){

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

//insert code here...

NSLog(@"Hello, World!");

[pool drain];

return 0;

}

오타가 있다면 제발 찾아주심...

일단 Xcode로 프로젝트를 생성하면 가장 처음에 자동으로 생성되는 예제구요.

분석을 시작해 봅시다. >_<

 

C언어와 비슷하면서도 약간 다른 측면이 있습니다.

 

그럼 첫줄

#import<Foundation/Foundation.h>

입니다. #include와 같은 내용입니다. <foundation/Foundation.h>를 포함합니다.

거의 대부분이 다 박혀있는 헤더파일 입니다.

 

 int main(int argc, const char * argv[]){

두번째 줄이죠 >_<

C언어에서의 int main()과 같습니다.

뒤에 써있는 인수가 무엇을 뜻하는지는 나중에 알아보도록하구요, 계속 나가봅시다~

 

 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

자동릴리즈풀입니다. 여기서의 풀은 메모리 풀을 뜻하는 것 같아요. ㅎㅎ

메모리 풀이란, 특정크기의 메모리 블럭들을 모아둔 장소입니다.

메모리를 요청하면 블럭을 하나씩 주는 곳이죠.

하지만, 메모리도 한계가 있는 관계로 블럭을 다시 돌려줘야 합니다.

그냥 "풀"이니까 수영장(프로그램)에 물(메모리)을 퍼준다는 기분으로 생각합시다. >_<

NS 란 NextStep의 줄임말인데, 개발툴킷이라는데, 그냥 넘어가구요 그냥 궁금하실 것 같아서요.;;

이것도 뒤로 넘기도록 합시다...(다넘어가...ㅡㅡ;;)

 

NSLog(@"Hello, World!");

어쨌거나, 오늘의 포인트..! C언어의 printf()와 같은 녀석입니다.

모든 프로그래밍 언어의 첫번째 예제는 이 "출력"을 위한거죠

이름도 상당히 직관적이요. 걍 Log, NS의 의미는 앞에서 했구요~

printf("Hello, World!"); 와 같이

NSLog(@"Hello, World!"); 인데요. 다 같은데 딱 한가지 "@" 이 골뱅이 님께서 다르십니다. >_<

"~~"이런 것을, C스타일의 스트링상수 라고 하구요

@"~"이런 것을, NS스타일의 스트링 상수하고 합니다.

우리는 그냥 C를 하는 것이아니니, 이제 Xcode에서 작성하는 모든 문자열은 @"~~"을 사용합시다.

 

[pool drain];

그 다음줄 입니다. 아까 앞에서 메모리를 할당했으니 빼줘야겠죠??

아까 수영장(프로그램)에 물(메모리)를 넣었는데, 다 놀았으니 이제 물을 빼줘야하니

 

drain 1. 물을 빼내다   2. (액체를) 따라 내다   3. (술 등을 다 마셔서 잔을) 비우다

 

해줍니다. 인터넷을 돌아다니다 어떤 분이 [주어 동사]로 설명하시는걸 봤는데요.

와우, 아주 좋은 설명인 것 같아요 ㅎㅎ

 

return 0;

그리고 리턴해주며 프로그램을 종료합니다.

실행 결과인데요.

마지막 줄을 보면. "프로그램이 끝났으영, 0이라는 상태값을 가지고"

라고 되어있는데, 0을 리턴해줬기 때문입니다.

관례적으로 0이 리턴되었다는 것은 "잘 해결 되었다."라는 뜻입니다.

 

근데 뭐

1로 쓴다고 충격적인 일이 발생하거나 하지는 않습니다.

"뒤에 (gdb)라고 되어있는데요?!"

그건 방금 실행시킨거라 그래요...ㅎㅎ

 

어쨌거나 오늘 알아볼것은 "출력"입니다.

"지금 시작하는 건가요?"

네, 지금부터 시작입니다. 앞은 수박 겉 햝기... 햝짝햝짝

 

 NSLog, 완전히 printf()함수와 같은 녀석입니다.

즉, printf("나의 나이 : %d", 20); 이런것도 당연히 되는거죠 >_<

근데 다른점이라면 %d가 아니라 %i라는것..!

 

(앗.. 새벽2시다...)

 

 

그럼 우리가 C에서 했던 것처럼 기본적인 일도 할 수 있겠죠??

어차피 이름부터 ObjectiveC니까, C입니다 >_<

 

 

죄송해여여러분... 차마 또 치기는 손이 후덜덜 하네요...

 

 

실행 결과 입니다.

 

C에서 배우던 일반적인 \n 도 사용이 되었습니다.

 

참고로 stdio.h 임포트 시키면 printf도 사용이 가능합니다. ㅎㅎ

"아니 그럼 왜 NSLog따위를..!"

이렇게 생각하시면, 그냥 C 쓰시구요. 그냥 뭘 새로 걍 배워봅시다.

 

근데, NSLog쓸때와 다른점이 있어요.

감지 하셨나요?!

제가 지금 이글을 쓰고 있는게 2010년 2월 22일 오전 2시 13분이라는 정보가 나오지 않습니다.

(흑흑, 낮잠을 잤더니 잠이 안와 ㅠㅠ)

 

 

 

그럼 오늘은 여기까지 하구요. 내일뵈요.

어제 1강 쓰고 오늘 2강 썼으니까, 내일 3강 쓰면 되겠네요.

아, 책은 아래 두권 병행해서 진행하구요.

 

저작권을 지켜야 하는 관계로,

일단 오픈소스 코드는 최대한 활용하도록 하구요.

(왼쪽의 책은 완전 오픈, 오른쪽의 책도 완전 오픈이니 상관 없겠군여)

이 Objective-C강의는

[위의 두권 + 인터넷을 돌아다니며 보는 좋은 설명 + 나의 손과 머리]를 이용해서 진행이되구요.

끝나는 순간 바로 아이폰 프로그래밍 강좌 올립니다.

음.. 음..... 얼마 안 걸릴 것 같아요.

기본적인 C언어가 되어있다는 가정하에 진행하는거니까요 ㅎㅎ

 

책 어떤거 추천하냐고 물으면(묻지도 않겠지만)

왼쪽꺼요. 훨씬 자세합니다. 오른쪽꺼는 뭐, 기초책이 아닙니다. ~_~

오른쪽 책을 사게된 경위는 제 싸이에 오시면 알겠지만 에구구... 실수였음 ㅋ

 

그럼 빠이~!

반응형

'Mobile > Object-C' 카테고리의 다른 글

ObjectiveC 4강 - 객체 예제  (0) 2010.10.01
ObjectiveC 3강 - 왜 ObjectiveC라고 하나요.  (0) 2010.10.01
ObjectiveC 1강 - ObjectiveC시작하기  (0) 2010.10.01
ObjectiveC 0강 - Xcode설치  (0) 2010.10.01
Objective-C Tutorial  (0) 2010.09.14

+ Recent posts