2010-04-09 2 views
13

Objective-C 프로그램에서 함수 이름 인터페이스 선언 앞에 "+"와 "-"의 차이점은 무엇입니까? 예 :Objective-C의 함수 이름 앞에 "+"와 "-"의 차이

- (void)continueSpeaking; 

+ (NSArray *)availableVoices; 

무엇이 다른가요?

+1

을 그냥 완료 될 :

그러나,이 방법 + (NSArray *)availableVoices 만과 같이 호출 할 수 있습니다이 전혀 아이폰 특정 아니라,이 목표 - C이다. –

+0

@ user280556 질문에 '대답하지 않음'섹션이 표시되지 않도록 답변을 수락하십시오. –

답변

19

+

클래스 메소드는 클래스 자체 클래스,하지 인스턴스에 속하는 클래스 메소드를 정의합니다.

예 : [AppDelegate someMethod]

-는 인스턴스 메소드

예를 + 방법 클래스 자체에서 작동하는 동안, 그 차이가 - 방법이 개체에서 작동한다는 것이다 설명하기 [[[UIApplication sharedApplication] delegate] someMethod]

한 가지 방법을 정의한다.

- (void)continueSpeaking은과 같이 호출 할 수 있습니다 : [myInstance continueSpeaking]

는 클래스가 MyClass 지명되었다, 당신은 그것의 인스턴스를 생성하고 myInstance라는 변수로 저장 말한다. [MyClass availableVoices]

+2

당신은 자바를 생각하고 있습니다. 그것들은 Objective-C에서 _class methods_라고 불리며, 클래스 메소드에는'self'가 있습니다.'self'가 클래스입니다. 예를 들어 클래스에'+ [MyClass someMethod]'와'+ [MyClass someOtherMethod]'메소드가 있다면'someMethod'에서'[someOtherMethod]'를 호출 할 수 있습니다. – Chuck

+3

표준'alloc'은 인스턴스를 반환하는 클래스 메소드이고, init은 인스턴스 메소드입니다. – outis

+0

좋아요, 다른 사람들은 C# brackground를 사용합니다 : + = Static Method – user230910

관련 문제