2009-05-14 13 views
5

나는 objective-c를 처음 접했고 인스턴스 변수와 접근자를 가진 표준 클래스의 프레임 워크를 확장해야한다. 나는 이것이 "카테고리"라고 불리는 것으로 이루어 졌다고 들었는데, 이것은 나에게 꽤 혼란스러워 보입니다. 이것은 기본적으로 어떻게 작동합니까?카테고리는 어떻게 작동합니까?

답변

10

카테고리는 클래스 내의 메소드 테이블에 메소드를 추가합니다. 기존 프레임 워크 클래스에 응용 프로그램 특정 메소드를 추가하는 것이 매우 편리합니다.

클래스에 인스턴스 변수를 추가해야하는 경우 카테고리는 작업을 수행하지 않습니다. 카테고리는 데이터가 아닌 메소드 만 추가합니다. 인스턴스 변수를 추가하려면 하위 클래스를 만들어야합니다.

+0

[Associated Objects] (http://nshipster.com/associated-objects/)를 사용하여 범주에 변수를 추가 할 수 있습니다. –

7

클래스의 범주는 해당 클래스에 메서드를 추가합니다. 인스턴스 변수를 추가 할 수 없습니다.

인스턴스 변수를 추가해야하는 경우 대신 하위 클래스로 지정할 수 있습니다.

+3

인스턴스 변수를 추가해야하는 경우 연결된 개체를 사용할 수 있습니다. –

관련 문제