2017-02-14 1 views
0

기본적으로 디자인 질문입니다. 내 응용 프로그램에서 코드 줄 수가 많은 컨트롤러가 있습니다. 선의 수를 줄이고 카테고리를 사용하고 싶습니다.자기로부터 카테고리 방법을 호출해야합니까

Like UIViewController subClass가 있고 해당 하위 클래스에 Category를 만들었습니다. 이제 UIViewController subClass에서 카테고리 메소드를 호출하려고합니다.

내가 [self categoryMethod]라고 불러야하나요?

답장을 보내 주셔서 감사합니다.

+0

만들고있는 클래스 카테고리는 무엇입니까? 당신의 부름이 효과가 있다는 것을 바탕으로 약간의 코드 또는 카테고리 클래스를 알려주십시오. – CodeChanger

+0

안녕하세요 @ 코드 변경 내 질문을 편집했습니다. 죄송합니다 코드를 여기에 추가 할 수 없습니다. –

+0

왜 안 되니? 당신은 사용중인 UIViewController의 특정 인스턴스에 대한 메소드를 호출하고 있습니다. 다른 인스턴스에는 아무 것도하지 않습니다. – Tj3n

답변

0

자기 개체를 동일한 클래스 UIVIewController의 개체로 호출 할 수 있으므로 문제가되지 않습니다.

는 여기에 우리가 카테고리가 필요한 이유를 좀 더 세부 사항은 다음과 같습니다

당신은 추가 방법을 정의하는 범주를 사용을 기존 클래스도 그 소스 코드를 서브 클래스없이-에 사용할 수없는 하나. 일반적으로 Cocoa frameworks에 정의 된 것과 같이 기존 클래스에 메서드를 추가하기 위해 범주를 사용합니다. 추가 된 메소드는 하위 클래스에 의해 상속되며 런타임의 런타임에서 클래스의 원래 메소드와 구별 할 수 없습니다. 당신은 또한에 자신의 클래스의 범주를 사용할 수 있습니다 별도의 소스로 자신의 클래스의 구현을 배포

  • 파일 - 예를 들어, 당신이 할 수 그룹 몇 가지 범주로 큰 클래스의 메서드와 각 카테고리를 다른 파일에 넣으십시오.
  • 개인 메서드를 선언하십시오.

당신은 카테고리 이름으로 인터페이스 파일 에서 그들을 선언하고 같은 이름으로 구현 파일 에서 그들을 정의하여 클래스에 메서드를 추가 할 수 있습니다. 범주 이름은 메서드가 인 클래스에 대한 확장이 새 클래스가 아닌 다른 곳에서 선언 된 것을 나타냅니다.

은 그래서 당신은 category로 작은 작은 조각 (파일)에 UIViewController 코드를 배포하고 클래스에서 호출 할 수 있습니다이 설명을 기반으로. 당신은 그래서 당신이 모든보기의 하위 클래스를 생성하고 각각의 클래스와에 관련된 코드를 작성할 수 있습니다 TableView, Header ViewFooter View, Navigation View이처럼 단일 클래스 코드를 줄이기 위해

또 하나의 방법은 작은 부분에 ViewController을 나눌 것입니다 main ViewController 클래스에는 데이터 전달 및 일반 메서드 만 포함됩니다.

UI 코드를 작고 작은 부분에 배포하는 것이 가장 좋습니다.

희망이 있으면 필요한 것을 이해하는 데 도움이됩니다.

해피 코딩.

관련 문제