Objective-C 카테고리


  1. 카테고리란? 클래스의 행위(메소드)를 일정 기준으로 분리, 정의한 것을 의미한다.
  2. 카테고리 선언 방법
    클래스의 구현 파일
    @implementation ClassName
    -(void)method1{
        // method1에 대한 기능 정의
    }
    @end

    @implement ClassName(CategoryName)
    -(void)method2{
        // method2에 대한 기능 정의
    }
    @end
  3. 카테고리의 목적
    1. 기존에 정의된 클래스에 자신이 필요한 메소드를 확장하여 사용하기 위함이다.
      1. 카테고리의 파일 이름 : '클래스 이름 + 카테고리' 위의 경우는 'ClassName+CategoryName.h' 가 된다.
      2. 아래는 카테고리로 확장한 예제이다.(NSMutableArray에 Int 값을 넣는 메소드 추가)
    2. 카테고리를 이용하여 특정 멤버변수와 프로퍼티, 메소드를 외부에 공개하지 않기 위해서 사용한다.(멤버변수, 프로퍼티, 메소드를 Private 상태로 만든다.)
      1. 멤버 변수를 감추는 방법은 .h에 정의된 변수를 .m인 구현 파일로 옮겨 주면 된다. 
      2. 카테고리를 이용하여 외부에 멤버변수, 프로퍼티, 메소드를 공개하지 않는 방법은 아래와 같이 추가해주면 된다.