2010-12-12 2 views
1

Objective-C에서 어떤 클래스를 생성하는 동안 클래스 메소드 또는 인스턴스 메소드로 메소드를 표시해야하는지 여부를 어떻게 결정합니까?Objective-C : 클래스 대 인스턴스 메서드?

나는 2의 차이점을 알고 있지만, 내 질문은 어떤 방법으로 표시 (+/-)를 결정 하는가?

답변

7

+은 클래스 메소드를 나타내고, -은 인스턴스 메소드를 나타낸다. 응용 프로그램에 필요한 클래스 또는 인스턴스 메소드를 작성합니다. 두 애플리케이션과 애플리케이션의 차이점을 실제로 알고 있다면 어떤 애플리케이션을 사용해야하는지 이해하는 데 문제가 없어야합니다. 당신의 모든 인스턴스를 통해 전 세계적으로 어떤 행동을 액세스해야 할 때

  • 당신은 클래스 메소드를 사용 : 당신은 그들이 당신의 응용 프로그램에 적용하는 방법의 차이를 모르는 생각

    , 그래서 여기에 작은 프라이머의 그 계급. 즉, [[self class] someSpecialThing];

  • 팩토리 메서드가 필요할 때도 클래스 메서드를 사용합니다.
  • 다른 곳에서는 인스턴스 메소드를 사용합니다.
+0

좋은 대답입니다. 메시징'self' 클래스는 일반적으로 팩토리 메소드 용으로 예약되어 있다고 말하는 것이 바람직합니다. 제 생각에는 특정 유형에 바인딩 된 기능을 가지고 있지만 특정 인스턴스를 신경 쓰지 않으면 언제든지 클래스 메소드를 사용해야합니다. –

+0

죄송합니다. 불쾌한 말씨는 좋은 양식 이었음을 암시하지 않으려 고했지만, 두 가지 생각이 다릅니다. 나는 그 말씨를 고칠 것이다. – jer

관련 문제