'Cocoa'에 해당되는 글 3건

  1. 2009.03.09 Objective-C
  2. 2009.03.08 Cocoa Programming - XCode 2
  3. 2009.02.04 코코아를 잠시 냉장고에 넣어두다
Mac OS X/Cocoa2009. 3. 9. 20:38
이글의 작성 의도는 [이곳]을 참조하라.

C/C++과 MFC에 너무 오랜 시간 노출된 탓일까?
아니면 이제 나이가 들어서 이해력이 많이 떨어진 것일까?
어쨌든 Objective-C는 한두시간만 보면 알 수 있다는 다른 사람들의 글을 보면서, 나 자신에 대한 성찰을 한번 해보고 있다. ^^

Objective-C는 FSF(Free Software Foundation)의 GNU C 컴파일러의 일부분으로 공개된 표준 컴파일러이다. Cocoa는 Objective-C로 개발되었고, Cocoa 프로그래밍은 대부분 Objective-C로 가능하다.

"@" 예악어

Objective-C에서 새로 추가된 예약어.
  • @interface ~ @end
    *.h 파일 내에 선언되는 클래스의 시작과 끝을 지정

  • @implementation ~ @end
    *.m 파일 내에서 클래스이 구현 부분의 시작과 끝을 지정

  • @"string"
    아스키 문자열을 NSString 문자열로 변환. 2바이트 문자는 UTF8로 처리해야 함. 어떻게 하는지는 아직 모름.

클래스 선언




메서드 선언

함수 선언 앞에는 - 또는 +가 붙는다.

- : 인스턴스 함수
+ : 클래스 함수. static 함수



메서드 호출(메시지 보내기)

[객체명 메시지명]의 형태로 호출한다. 메시지명은 메서드를 의미한다. 메서드를 호출하기 위해서는 객체명의 그 객체가 가지고 있는 메서드명을 적어 주는데, 이렇게 메서드를 호출하는 것을 "메시지를 보낸다"라고 표현한다.

Cocoa의 클래스중 하나인 NSMutableArray를 이용한 예를 보자.

[NSMutableArray alloc]
NSMutableArray 클래스의 alloc 메시지를 보낸다. alloc 메시지는 NSMutableArray 클래스의 객체를 생성한 후, 그 포인터를 반환한다.

1 : NSMutableArray *foo;
2 : foo = [NSMutableArray alloc];
3 : [foo init];

1 : NSMutableArray 클래스의 포인터 변수 선언
2 : NSMutableArray 클래스에 alloc 메시지를 보내, NSMutableArray 클래스의 객체를 생성하고, 포인터를 반환 받는다.
3 : NSMutableArray 클래스 객체인 foo에 init 메시지를 보내어 객체를 초기화한다. 이때 메시지를 받는 것은 NSMutableArray 클래스가 아닌 foo 객체가 된다. 이런 상태를 'foo는 init 메시지의 receiver이다'라고 하고, 메시지는 selector라고 부른다.

위의 코드를 아래와 같이 작성할 수도 있다.

NSMutableArray *foo;
foo = [[NSMutableArray alloc] init];

메시지 호출 시 인자의 전달은 다음과 같이 한다. foo 객체의 addObject 메시지를 호출하면서 인자로 bar를 전달한다.
[foo addObject:bar]

메시지에 인자를 전달하는 경우 "셀렉터이름:인자이름"의 형태로 사용한다.

두 개 이상의 인자를 전달하는 경우에는 다음과 같이 한다.
[foo insertObject:bar atIndex:5]

셀렉터에 전달되어 지는 두 번째 인자부터는 "인자이름:값"의 형태로 값을 전달한다.

사실 이 문법은 아직 그 편리함을 느끼지 못하는 부분이다. 헷갈리기만 한다.


Protocol




Category




참고 자료

일단 부족한 기억력을 보충하기 위해 링크부터 걸고 보자. 자료를 공개해 주신 모든 분들께 감사... 꾸벅






최초 작성일 : 2009년 3월 9일 / 최종 수정일 : 2009년 3월 10일
Posted by 고처리
Mac OS X/Cocoa2009. 3. 8. 15:31
이글의 작성 의도는 [이곳]을 참조하라.

다른 분의 블로그로 링크 이어집니다. ^^

1.1 Xcode 구하기 - http://cocoadev.co.kr/1
1.2 Xcode를 이용한 첫 cocoa 프로그램 Hello - http://cocoadev.co.kr/3
1.3 Hello 프로그램 기능 추가 - http://cocoadev.co.kr/4
1.4 간단한 계산기 프로그램 - http://cocoadev.co.kr/5
1.5 NSView를 이용한 그리기 - http://cocoadev.co.kr/7
1.6 SimpleViewer 이미지 뷰어 (1) - http://cocoadev.co.kr/11
1.6 SimpleViewer 이미지 뷰어 (2) - http://cocoadev.co.kr/12
1.7 업그레이드된 계산기 프로그램 (1) - http://cocoadev.co.kr/13
1.7 업그레이드된 계산기 프로그램 (2) - http://cocoadev.co.kr/14
1.8 간단한 슈팅게임 (1) - http://cocoadev.co.kr/37
1.8 간단한 슈팅게임 (2) - http://cocoadev.co.kr/43
1.10 기본 콘트롤 사용법 (1) - http://cocoadev.co.kr/94
1.10 기본 콘트롤 사용법 (2) - http://cocoadev.co.kr/99
간단한 ToDo 어플리케이션 만들기 - http://cocoadev.co.kr/102
간단한 웹브라우저 만들기 - http://cocoadev.co.kr/127





최초 작성일 : 2009년 3월 8일 / 최종 수정일 : 2009년 3월 8일

'Mac OS X > Cocoa' 카테고리의 다른 글

Mac OS X과 iPhone application directory 비교  (0) 2009.05.01
Mac OS X과 iPhone application project directory 비교  (0) 2009.05.01
Objective-C  (0) 2009.03.09
Posted by 고처리
난 이렇게 살아2009. 2. 4. 17:32
이글의 작성 의도는 [이곳]을 참조하라.

컴퓨터를 만지기 시작한지가 벌써 앙산이 두 번이 바뀌고도 한참 지나고, 이걸로 밥먹고 산지도 강산이 한번 반은 바뀐것 같다.
그동안 갈아 치운 컴퓨터 값만해도 중형차 한대는 살것 같은데...
그동안 사들인 책 값만해도 경차 한대를 살테고...

이렇게 오랜 시간이 흐르고, 많은 돈을 들였어도, 이넘의 컴퓨터에는 계속 돈이 들어간다.(내가 소비하는 돈의 대부분이 차량 유지비와 이넘의 컴터와 씨름 하는데 들이는 돈이 아닐까 싶다.)

새로운 하드웨어, 새로운 소프트웨어, 새로운 개발 언어, 새로운 개발환경...
사실 새로운 하드웨어나 소프트웨어에는 별 관심 없다.
내가 하드웨어에 투자하거나, 새로운 소프트웨어를 구하는 주 이유는 새로운 개발 언어와 개발 환경에 대응하기 위해서일 뿐이다.

얼마전부터 Mac OS X의 개발 환경에 관심을 가지기 시작했다.
작금의 시점에서 Mac OS X의 개발 환경에 관심을 갖는 다는 것은 결국 AppStore 복권을 꿈꾸는 것일 수도 있다.(강하게 부정하진 않는다.^^)

그런데 이를 위해서는 맥북을 사야 하는데...
이게 좀... 일년전 이맘때쯤 고진샤 UMPC(이건 사실 개발 환경을 위한 것이 아니라 순수한 장난감이다)를 거금을 들여서 사서 갖고 놀고 있는 나로써는 우리집 내무부, 외무부, 재경부 등 모든 권력을 장악하고 있는 그녀에게 감히 새로운 노트북를 사주세요란 말을 할 수가 없다. 난 아직 나의 삶에 애착을 가지고 있다.
또한 우리 집엔 가족 수 보다 많은 사용가능한 컴퓨터가 있다.(가족수 4명 < PC 1대 + 노트북들. 이게 얼마야?) 그 중에 가장 작다는 IBM ThinkPad X20이나 UMPC로 맞아도 많이 아플거다. 분명히...

이런 상황이니 200만원에 달하는 맥북과 iPod를 가슴속으로만 꿈꾸어야 했다.
그렇다고 포기할 쏘냐...
두드려라 열린것이다. 구하는 자에게 복이 있나니... 가슴앓이 하던 나에게 희망이 있었다. 바로 해킨토시이다.
궁금하면 이곳(해킨토시 사이트 : http://x86osx.com)을 두드려 보시라.
삼일 동안 여러 자루의 삽을 분지른 후에 나의 노트북에 해킨토시 중 Tiger 10.4.8을 설치할 수 있었다.
이것은 서광이 아닌 광명이었다.
다음은 XCode... 그런데... 이것이 Tiger(Mac OS X 10.4.x)용과 Leopard(Mac OS X 10.5.x)용이 차이가 크다. 
Leopard용은 Tiger에 설치되지 않는다. 흑흑...

결국 최종적으로 만들어낸 환경은 Mac OS X은 깔았다. 개발 환경도 깔았다. 
그러나 iPhone SDK는 그림에 떡! 떡! 떡!

그렇다고 포기할 쏘냐. Mac OS X에서는 코코아를 먹어야 한단다. XCode를 설치했으니, 이것 맛볼 수 있겠다. 싶었다.
www.apple.com에서 다큐먼트 기웃 거리다, 짧은 영어 실력을 한탄하며, 책을 한권 구입. 
Cocoa Programming for Mac OS X(third edition) 코코아 프로그래밍. 인사이트

번역자에게 감사 또 감사를 소리 내지 않고 외쳤다.

그러나... 이 책은 Leopard 기반이다. Tiger에서 구동 가능한 xCode는... 오TL
그래서 결국은 코코아를 냉장고에 넣어 두기로 했다. 맥북을 사는 그날까지...

오늘부터 고귀하신 그녀에게 작업 들어갑니다(사실 작업은 한달 전부터 이미 진행중이다.)
맥북 사주세요... 네에...

그때까지는 Qt와 함께...


최초 작성일 : 2009년 2월 4일 / 최종 수정일 : 2009년 2월 4일
Posted by 고처리