2014-06-24 3 views
0

하나의 테이블 뷰 컨트롤러 (정적 테이블 뷰 제어)와 다른 일반 뷰 컨트롤러가 있다고 가정합니다.여러 클래스에 공통 속성을 추가하는 올바른 방법은 무엇입니까?

둘 다에 공통 속성을 추가하고 싶습니다. 내 마음 속에 떠오르는 것은 서브 클래 싱입니다.이 두 컨트롤러가 일반적인 추상 수퍼 클래스에서 파생된다는 것을 의미합니다. 조금 숙고하고 나면, 프로토콜이 이것을 달성 할 수 있다고 회상합니다.

제 질문은 올바른 접근 방식이나 더 나은 방법이 있습니까?

답변

1

서브 클래 싱이 올바른 접근 방법 일 수 있습니다. 프로토콜은 속성을 자동으로 추가하지 않으며 클래스가 클래스를 구현하는 특정 클래스와 일치하는 경우에만 지정합니다. 자바 세계에서 오는 경우 인터페이스가 동등한 것입니다.

UITableview 컨트롤러와 같은 클래스의 모든 인스턴스에 공통 기능 (메서드)을 추가하려는 경우 카테고리가 적절할 수 있습니다. 단점은 범주를 통해 추가 인스턴스 변수 (또는 속성)를 선언 할 수 없다는 것입니다 (기술적으로는 관련 객체를 통해 가능하지만 다른 토끼 구멍이 있습니다).