외규장각 도서 환수 모금 캠페인
BLOG main image
분류 전체보기 (45)
컴퓨팅환경 (18)
프로그래밍 (18)
놀이 (2)
잡담 (7)
«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
10,173 Visitors up to today!
Today 2 hit, Yesterday 30 hit
daisy rss
meet me at me2DAY
나눔글꼴 내려받기
tistory
'Method'에 해당되는 글 1건
2008/12/17 23:52

먼저 다음과 같은 메소드가 있다.

- (void)drawImage:(NSImage *)image withFrame:(NSRect)frame inView:(NSView *)view
{
    NSSize size = [image size];
    NSRect rect = NSMakeRect(0, 0, size.width, size.height);

    [view lockFocus];
    [image drawInRect:frame fromRect:rect operation:NSCompositeCopy fraction:1.0];
    [view unlockFocus];
}

"메소드"란 위의 소스 그 자체라 말할 수 있다. 즉, 메소드 이름, 인자 갯수, 각 인자들의 데이터타입, 리턴값의 데이터타입, 그리고 그 내용으로 구성된다. 위의 소스는 이 모든 것들을 모두 표현하고 있다. 그럼, 이 메소드의 구성 요소들을 용어로 정리해 보자.

  설명 예제 값
selector 메소드의 이름 drawImage:withFrame:inView:
method signature (type encoding) 인자들 및 리턴값의 타입정보 v@:{_NSRect={_NSPoint=ff}{_NSSize=ff}}@
implementation 실행코드 함수 포인터

자, 이제 이 메소드를 다음과 같이 호출해 보자.

    [myCell drawImage:myImage withFrame:NSMakeRect(0, 0, 32, 32) inView:myView];

이렇게 메소드를 호출하는 것을 Objective-C에서는 "메세지를 보낸다(send message)"라고 한다. 메세지는 다음과 같은 네가지로 구성된다.

  설명 예제 값
receiver 메세지를 받는 객체 myCell
selector 호출될 메소드의 이름 drawImage:withFrame:inView:
arguments 호출시 넘어가는 인자들 myImage, NSMakeRect(0, 0, 32, 32), myView
return value 호출후 넘어오는 값 void

Objective-C 런타임 및 Cocoa 프레임워크에서는 위의 용어들을 다음과 같이 추상화해 놓았다.

  Objective-C Runtime Cocoa Framework
selector SEL, @selector() SEL, @selector()
method signature (type encoding) const char * NSMethodSignature
implementation IMP IMP
send message objc_msgSend() NSInvocation,
[NSObject performSelector:withObject:]

 

이 글은 스프링노트에서 작성되었습니다.

prev"" #1 next