티스토리 뷰

Mobile/iOS

Category

out of coding 2014. 2. 28. 17:18

클래스 정의를 다루던 도중 새 메서드를 추가하고 싶을 때가 있을거란다.

내 생각에는 내가 만든 클래스는 그냥 추가하면 될것 같은데... 예제라서 그렇게 한거 같고.

남이 만들어서 추가할수 없는 녀석들에 대해서 적용하는 용도일듯.

다른 분들은 엄청나게 강력하다고 이야기들을 하신다... 왜 나만 이렇게 부정적이지. 아무튼.

일단 구현방식은 너무나도 쉽다. New File에서 Category를 선택하면 된다.


이 것을 구현하고 나서 할짓은,

import문에 들어가 있던 부분의 header파일의 이름을 변경하여 주면된다.

흠... 글쓰는 아직까지도 엄청나게 어마어마하게 상속보다 강력한것을 못 느끼고 있음...

한가지 장점을 따지자면, 모태가 되는 클래스가 존재할 경우에, 이 부분들에 대해서 각각의 모듈을 작성할수 있을듯.

소스 꼬이고 그러는일도 별로 없을것 같긴한데... 흠... 잘못하면 같은 기능들을 막 다 집어 넣을듯.


일반 선언 클래스와 비교를 한다.

장점을 찾지 말고 필요할때가 있다면 사용하는것이 맞을듯...


Class 상속 받을 경우. 상속받아서 사용하는 클래스는 대략 이런식이다.

 인터페이스 파일 (BaseClass.h)

#import <Foundation.h>

@interface BaseClass : [Super Class]

{

인스턴스 변수

}

메소드

@end

 구현부 파일(BaseClass.m)
#import "BaseClass.h"

@implementation BaseClass

실제구현


@end




카테고리를 사용할 경우. 형태가 Ext일 경우.

인터페이스 파일(BaseClass+Ext.h)

#import "BaseClass.h"

@interface BaseClass(Ext)

   - (void) oops;

@end



 구현부 파일(BaseClass_Ext.m)

#import "BaseClass+Ext.h"

@implementation BaseClass(Ext)

   - (void) oops

   {

   }

@end


'Mobile > iOS' 카테고리의 다른 글

ARC 에러  (0) 2014.03.05
nil이란?  (0) 2014.03.03
@protocol  (0) 2014.02.28
동적 형을 다루는 메소드  (0) 2014.02.28
메소스 정의시 +,-의 차이  (0) 2014.02.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
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
글 보관함