'맥프로그래밍'에 해당되는 글 9건

  1. 2009.06.15 Objective-C : Categories 1/2
반응형
"Category"는 현존하는 클래스에 새로운 메소드를 추가하는 방법이다. Category는 다음과 같이 선언한다.

@interface SomeObject (CategoryName)
- Some method to add
@end

이에 대한 구현은

@implementation SomeObject (CategoryName)
- Method Implementation
@end

가 된다.

예를 들어 NSString의 문자열 길이를 NSNumber 형식으로 리턴하는 코드를 생각해 보자. 다음의 코드로 처리가 가능하다.

NSNumber *number;
number = [NSNumber numberWithUnsignedInt: [string length]];

이렇게 하지 말고 NSString에 lengthAsNSNumber 라는 메소드를 category를 이용하여 추가하고 이용 가능하다.


Category는 1) 클래스에 instance variable을 추가 할수 없다, 2) 확장하는 클래스에 동일한 이름의 메소드가 존재하면 이를 완전히 대치 한다. (원래것을 호출할 방법이 없다) 라는 단점이 있다.

하지만 Category는 1) 여러 파일에 class의 implementation을 분산 시켜야 하는 경우, 2) private method에 대한 fforward reference를 해야 하는 경우 3) object에 informal protocol을 추가하는 경우 에 유용하다.

...다음 포스트에 계속됨..
반응형
Posted by alias
,