클래스를 카테고리를 사용하여 확장하기 [iOS]

Objective-c에는 클래스를 수직적으로 확장 할 수 있도록 상속받아서 확장받는 방법과 수평적으로 확장할 수 있는 카테고리 두가지 방법이 있다. 카테고리의 특징은 해당 클래스에 새로운 변수를 추가 할 수 없고 메소드만 추가 할 수 있다. 처음에는 어디다 쓰지? 싶은 생각이였지만 쓰다보니까 다 방법이 있더라. 내가 만든 클래스보다는 다른 사람이 만든 클래스를 쓸때, 특히 애플에서 기본적으로 제공하는 NSString등의 NS로 시작하는 오브젝트나 UIView 등의 UI…로 시작하는 오브젝트들에 카테고리로 확장해서 사용하면 정말 편하게 작업을 할 수 있다. 예를 들어 프로젝트에 쓰이는 특수한 색상들을 카테고리로 확장하여 [UIColor lotcoColor] 등으로 지정해두면 나중에 유지보수할때도 좀더 편하게 작업을 할 수있다.

테스트용으로 UIView를 하나 만들겠다 보통 카테고리는 [클래스명+확장자이름] 식으로 이름을 만든다. 헤더파일에 [클래스명(확장 카테고리이름)] 식으로 이름을 지어준다. 그리고 확장시킬 메소드를 지정하고 m파일에 해당 소스를 구현한다.

  • UIView+lotco.h

 

  • UIView+lotco.m

 

그 이후 사용방법은 정말 쉽다. 사용하고 싶은 클래스에 카테고리 파일을 임포트 시키고 해당 메소드를 호출하면 커스텀 메소드로 확장 된 나만의 메소드를 사용할수있다. 프로젝트 안에 자주 사용되는 카테고리라면 prefix에서 미리 임포트를 시키면 프로젝트에 자주 쓰이는 색상이나 문자 변환등을 손쉽게 작업 할 수 있다.

 

  • test code

 

1

예제파일 다운로드

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.