메세징 기법
Obj-C
에서 객체간의 통신에 사용되는 기법메소드 호출
(calling)이 아닌메세지 전달
(message passing)

다른 언어와 비교
1) 일반적인 객체지향 언어들 (C++, Java 등)
- 메소드 호출
→
혹은.
을 통해 직접 호출
data->get_data(); data.get_data();
2) Obj-C (동적인 언어)
- 메세지 전달
[]
대괄호를 통해 메세지 전달을 명시함.- 이처럼 대괄호를 이용한 구문을 “메세지를 보낸다”라고 함.
객체
: 메세지수신자
메세지
: 객체에 전달할메세지
(메소드 호출 등)런타임 라이브러리
함수들에 의해 런타임에서 메세지에 맵핑된 처리함수를 찾아 수행 후 반환됨.
[ 객체 메세지 ] 또는 [ 클래스 메세지 ]
메세지 전달 구문
메소드 정의
인스턴스 메소드
를 예시로 들지만클래스 메소드
도 맨앞에-
대신+
로 명시하는 것 외에는 동일하다.
- 메세지명 사이사이에 콜론으로 매개변수가 들어가는 특이한 구조를 가진다.

- 전체 메세지 명은
addX:withY:
이다.
- 콜론(
:
) 뒤에는 매개변수가 들어간다.
{}
중괄호 사이에 메세지 호출 시 실행할 내용을 명시한다.
메세지 전달

[]
대괄호로 메세지 호출을 명시한다.
- 맨 앞에는 메세지 수신자
- 해당 메세지가 명시된 클래스명 또는 객체
- 뒤에는
메세지명
과매개변수
를 전달한다.