'category'에 해당되는 글 1건

  1. 2008.11.06 Objective C 의 카테고리
2008.11.06 20:07
Category란?!
이미 있는 클래스에 Method를 추가 할수 있게 해주는 것! 이것이 개념!
뭐 별 대수롭지 않게 보일수도 있지만, C++과는 다르다. 이유는 무엇 일까? C++에서 class를 정의한 헤더 파일과 오브젝트 파일을 받았을때 추가 하는 방법은 상속을 받은뒤 추가를 하는 것이다. 하지만 Objective C는  C++과는 다르다. 어떻게 다르냐! Objective C는 카테고리라는 것이 존재 한다. 그래서 상속을 받아서 추가 하지 않고 카테고리를 추가 함으로써 클래스를 재생성 하지 않고도 추가할수 있는 효과를 내게 된다.

자 예를 들어보자 ! 예는...
어제 한 Geomatry 오브젝트와 그것을 상속받은 Rectangle! Rectangle에 카테고리로 Variable 과 Method를 추가 할 것이다.

@interface Rectangle  (CategoryRect)

int m_newVariable;

-(void)CategoryRectDisplay;

@end


@implementation Rectangle (CategoryRect)

-(void)CategoryRectDisplay

{

m_newVariable = 100;

printf("This is Category method and New Variable = %d\n", m_newVariable);

}

@end


위와 같이 하게 되면 성공이다. 자 main문에서 메소드에 메시지 전달은 아래와 같이 하면 된다.


Rectangle *rc;

rc = [[Rectangle alloc]init];


[rc SetRectLeft:0 Right:0 Top:10 Bottom:10];

[rc CategoryRectDisplay];


위 처럼 메인문을 작성 하게 되면 결과 값은 아래와 같다.


left = 0 top = 10

right = 0 bottom = 10;

This is Category method and New Variable = 100


와 같이 나올 것이다. 자 이렇게 카테고리 사용법에 대한 예이다.



(-참고-display는 아래와 같이 바뀌어져 있어야된다)

-(void)display

{

printf("%s\n",name);

printf("left = %d top = %d\nright = %d bottom = %d\n", m_left, m_top, m_right, m_bottom);

}

신고
Posted by 우엉 여왕님!! ghostkyow

티스토리 툴바